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