工作三年,看C的書也不少。第一次知道extern可以省略變量類型。
b.c有一個全局變量unsigned int data_length,a.c想要調用它,通常使用:
extern?unsigned int data_length;
在聲明時可以把外部變量類型去掉:extern data_length;
雖然這樣使用合法,但是違背代碼規范,可閱讀性差,不建議這樣使用。
這樣的使用方法與編譯器也有關
Visual Studio2010會報錯。
?
Keil可以編譯通過,只是警告。
?
ubuntu同樣是可以編譯通過,有警告
?
除此之外,extern常用于兩個文件之間共享資源的調用,
面試的時候被問到一個非常規問題,變量隨便定義在某個地方,能調用它嗎
測試出extern在同文件下,可以這樣使用
同樣的,不符合代碼規范,不建議這樣使用