宣告 (Declarations)
變數宣告,讓程式得知某個變數的型態和名稱。(不配置空間)。(宣告可以出現一次以上,只要內容一致)。
A declaration makes known the type and name of the variable to the program.
寫法/例子:
extern int i;
//只做宣告,不配置空間
定義 (Definitions)
定義,也是一種宣告。變數的定義除了宣告型態與名稱外,也為這個變數配置空間,也可能給予初始值。然而程式中一個變數只能有一次定義,不可以重複定義。
A definition is also a declaration. When we define a variable, we declare its name and type. A deinition of a variable allocates storage for the variable and may also specify an initial value for the variable. There mush be one and only one definition of a variable in a program.
寫法/例子1:
int i;
//定義,可以只配置空間,尚不決定初始值。
寫法/例子2:
int i = 1 ;
//定義,配置空間並給予初始值。
寫法/例子3: 若用extern宣告變數同時又給初始值的話,則會被視為一個定義。
extern int i = 1 ;
//只要設初值,就會變成定義。
使用變數
- 我們在使用變數之前,必須先宣告或定義它一次,然後需要的話給它一個初始值。
- 若此變數要在多個檔案使用(外部連結性全域變數),請在某一個檔案定義它,而其他每個用到該變數的檔案都要宣告該變數。
各種錯誤
變數不能只有宣告,而沒有定義,會發生 linking error !
(函式就可以只有宣告,沒有定義)
變數若定義不只一次,會發生重複定義的錯誤!
沒有留言:
張貼留言