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變數卻是可以直接使用。


返回上一頁