我在GCC編譯器上編譯後面的程序時感到驚訝。它成功地工作。編譯器只給出警告。extern關鍵字在C中的行爲
warning: 'i' initialized and declared 'extern' [enabled by default] extern int i = 10;^
我的代碼:
#include <stdio.h>
//Compiler version gcc 4.9
extern int i = 10;
int main()
{
printf("%d\n",i);
return 0;
}
輸出:
10
爲什麼不給編譯器錯誤?它是不確定的行爲?
可能的重複http://stackoverflow.com/questions/496448/how-to-correctly-use-the-extern-keyword-in-c – 0xAX