可以請告訴我什麼是當在不同的文件中聲明常量變量時extern變量的用法。extern在聲明常量時有什麼用處?
1
A
回答
5
extern
關鍵字強制編譯器將該語句視爲聲明而不是定義。換句話說,extern
可以防止編譯器爲變量保留空間。因此,只有不使用extern
的編制單位提供了一個定義,而其他單位僅使用符合「一個定義規則」的聲明;如果每個編譯單元爲相同變量獨立保留空間,則會導致違反「一個定義規則」。請注意,extern
字面意思是「該定義是由外部提供的(由不同的編譯單元)」。
1
就像C一樣,extern關鍵字表示該符號是在另一個將在編譯階段鏈接到此目標文件的對象文件中定義的。
相關問題
- 1. EXTERN常量,這是聲明,這是向前聲明
- 2. 爲什麼main不被聲明爲extern
- 3. 有什麼辦法用g ++標誌聲明函數爲extern「C」?
- 4. 用extern聲明創建頭文件有什麼意義?
- 5. 在變量聲明中使用var有什麼好處?
- 6. 這種聲明有什麼用處?
- 7. 爲什麼這個常量常量常量聲明中無效
- 8. 在聲明一個變量時使用創建的FUNCTION有什麼好處嗎?
- 9. 在聲明變量時使用「」和「'和()有什麼區別?
- 10. 在常量聲明
- 11. 如何定義extern變量和聲明?
- 12. 用屬性聲明實例變量或不聲明時有什麼區別?
- 13. 聲明常量沒有值
- 14. 爲什麼我需要聲明「extern crate core」來使用libcore?
- 15. 爲什麼使用'extern'聲明而不是定義創建一個變量?
- 16. 什麼時候將const_iterator聲明爲一個常量迭代器?
- 17. 在swift中聲明這些變量時有什麼區別!或()
- 18. 在運行時聲明常量(Java)?
- 19. 錯誤:的extern聲明「我」如下聲明沒有聯動
- 20. C++的extern類聲明
- 21. 如何聲明extern結構?
- 22. 爲什麼在聲明常量時不能使用C#匿名類型?
- 23. 爲什麼有些人在一個函數內部聲明extern函數?
- 24. 在結構中聲明匿名結構有什麼用處?
- 25. p在常量聲明
- 26. 雙常量聲明
- 27. 聲明「extern struct cpu * cpu asm(」%gs:0「);」是什麼意思?
- 28. extern變量 - 爲什麼?
- 29. 爲什麼值賦值排除extern關鍵字並聲明變量?
- 30. 爲什麼我們不能用默認值聲明常量?
你的意思是'extern'聲明?如果是這樣,它與C中的一樣;) – 2010-04-07 09:56:37
那麼是否可以聲明一個局部變量,其名稱與同一文件中的外部變量相同? – PrithviRaj 2010-04-07 10:01:04
@prithviraj,是的。它將「遮蔽」全球宣言。 – 2010-04-07 11:31:10