【C++】變量(四) 變量的聲明和定義

C++程序通常是由很多個file組成。爲了讓每個file能夠使用同一個變量,C++特意把變量的聲明和定義區別開來。

變量的定義,是指爲變量分配內存,或者有時也爲其設定一個初始值的操作。在程序中,同一個變量只能定義一次。

變量的聲明,是讓程序知曉變量的類型和名稱。其實,變量的定義也是一種變量的聲明的:當我們定義一個變量時,我們需要聲明它的類型和名字。我們可以通過關鍵詞extern來聲明一個未定義的變量。當然,變量的聲明也不僅僅是在變量類型和名字前面加上一個extern那樣的定義。就如下面:

extern int i; //declares but not define i

int i;        //declares and define i

 通過extern來聲明的變量,不是對變量的定義,也不會爲變量分配內存。事實上,它的使用要求在程序的其他地方已經對該變量進行了定義。在一個完整的程序中,同一個變量可以聲明多次,但是隻能定義一次。

 在聲明變量時,可能會爲變量設定一個初始值,但是這種操作會被認定爲變量的定義,因爲只有定義纔可以爲變量分配內存。那麼,這個初始化程序必須擁有內存可以初始化。而且,一旦使用了初始化程序,不管這個聲明裏存不存在extern,這次操作都是變量的定義。譬如:

extern double pi=3.1416;  //definition

 不管有沒有使用extern,這個語句都定義了pi,內存被分配給pi,並且初始值是3.1416。不過,需要注意的是,只有在函數外使用初始化操作的extern聲明,纔是合法的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章