Visual C++ >> Console
declaration、definition
declaration代表宣告並且沒有配置變數儲存空間(可以多次宣告),而definition則代表定義變數且配置儲存空間(不能多次定義),這兩種名詞不只是英文單字的解說,它們的差異也表現在程式語言上。
範例一(編譯正常)
extern int i; // 宣告i int i; // 宣告並定義i
範例二(編譯正常)
extern int i=123; // 定義i
範例三(編譯正常)
extern int i=123; // 定義i extern int i; // 宣告i
範例四(編譯錯誤)
extern int i=123; // 定義i extern int i; // 宣告i extern int i=123; // 定義i
所以大家應該知道為何extern宣告一個變數時,並無法直接使用,必須額外定義,但是給定初始值的extern變數卻是可以直接使用。