C學習雜記(七)extern聲明可省略變量類型

工作三年,看C的書也不少。第一次知道extern可以省略變量類型。

b.c有一個全局變量unsigned int data_length,a.c想要調用它,通常使用:

extern unsigned int data_length;

在聲明時可以把外部變量類型去掉:extern data_length;

雖然這樣使用合法,但是違背代碼規範,可閱讀性差,不建議這樣使用。

這樣的使用方法與編譯器也有關

Visual Studio2010會報錯。

 

Keil可以編譯通過,只是警告。

 

ubuntu同樣是可以編譯通過,有警告

 

除此之外,extern常用於兩個文件之間共享資源的調用,

面試的時候被問到一個非常規問題,變量隨便定義在某個地方,能調用它嗎

測試出extern在同文件下,可以這樣使用

同樣的,不符合代碼規範,不建議這樣使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章