โปรดทราบว่าคำถามนี้ถูกโพสต์ครั้งแรกในปี 2009 ก่อนที่ C ++ 11 จะได้รับการให้สัตยาบันและก่อนที่ความหมายของ
auto
คำหลักจะเปลี่ยนไปอย่างมาก คำตอบที่มีให้เกี่ยวข้องเพียงไปที่ C ++ 03 ความหมายของauto
- ที่ถูกชั้นจัดเก็บข้อมูลที่ระบุไว้ - และไม่ c ++ 11 ความหมายของauto
- ว่าการหักชนิดอัตโนมัติ หากคุณกำลังมองหาคำแนะนำว่าควรใช้ C ++ 11 เมื่อauto
ใดคำถามนี้ไม่เกี่ยวข้องกับคำถามนั้น
เป็นเวลานานที่สุดที่ฉันคิดว่าไม่มีเหตุผลที่จะใช้static
คีย์เวิร์ดใน C เนื่องจากตัวแปรที่ประกาศนอกขอบเขตการบล็อกนั้นมีผลทั่วโลก จากนั้นฉันค้นพบว่าการประกาศตัวแปรstatic
ภายในขอบเขตบล็อกจะให้ระยะเวลาถาวรและการประกาศนอกขอบเขตบล็อก (ในขอบเขตโปรแกรม) จะทำให้ขอบเขตไฟล์ (สามารถเข้าถึงได้ในหน่วยคอมไพล์นั้นเท่านั้น)
ดังนั้นสิ่งนี้ทำให้ฉันมีคำหลักเพียงคำเดียวที่ฉัน (อาจ) ยังไม่เข้าใจทั้งหมด: auto
คำหลัก มีความหมายอื่นนอกเหนือจาก 'ตัวแปรท้องถิ่นหรือไม่? สิ่งใดที่ไม่ได้ทำโดยปริยายสำหรับคุณทุกที่ที่คุณต้องการใช้? อย่างไรauto
ตัวแปรปฏิบัติตนในขอบเขตโปรแกรม? อะไรคือstatic auto
ตัวแปรในขอบเขตไฟล์? คำหลักนี้มีจุดประสงค์อื่นนอกเหนือจากที่มีอยู่เพื่อความสมบูรณ์หรือไม่?