為了讓多個檔案訪問相同的變數,c++區分了宣告和定義
1.變數的定義用於為變數分配儲存空間,還可以為變數指定初始值,在乙個程式,變數有且僅有乙個定義
2.宣告用於想程式表明變數的型別和名字
定義也是宣告 :當定義變數時我們宣告了它的型別和名字,只有定義才分配儲存空間。
可以通過使用extern關鍵字宣告變數名而不定義它,不分配儲存空間。它只說明變數定義在程式的其他地方。程式中變數可以宣告多次,但只能定義一次。
extern int i; //宣告但不定義
int i; //宣告並定義
extern double pi = 3.14.15 //即使宣告標記為extern,只能當作定義。只有當extern宣告位於函式外部時,才可以含有初始化式。
在c++中,變數必須且僅能定義一次,而且在使用變數之前必須定義或宣告變數。
任何在多個檔案中使用的變數都需要有與定義分離的宣告。在這種情況下,乙個檔案含有變數的定義,使用該變數的其他檔案則包含該變數的宣告。
一般,名字從其宣告點開始直到其宣告所在的作用域結束處都是可見的。c++中,大多數作用域使用花括號來界定的。
當區域性變數與全域性變數名相同時,在區域性範圍內,區域性變數遮蔽了全域性變數。
通常把乙個物件定義在它首次使用的地方是乙個很好的辦法。
放置宣告的乙個約束是,變數只在從其定義處開始到該宣告所在的作用域的結束處才可以訪問。必須在使用該變數的最外層作用域裡面或之前定義變數。
宣告和定義
宣告 向計算機介紹名字,它說,這個名字是什麼意思 而 定義 為這個名字分配 儲存空間。無論涉及到變數時還是函式時含義都一樣。無論在哪種情況下,編譯器都在 定義 處分配儲存空間。對於變數,編譯器確定這個變數佔多少儲存單元,並在記憶體中產生存放它們 的空間。對於函式,編譯器產生 並為之分配儲存空間。函式...
宣告和定義
在宣告部分出現變數有兩種情況 1 一種是需要建立儲存空間的,如 int a 2 另一種是不要建立儲存空間的,如 extern int a 前者是 定義性宣告 defining declaration 或者稱為 定義 definition 後者是 引用性宣告 referencing declarati...
宣告和定義
宣告 函式或變數會在某處出現,在此處,該函式或變數長這樣。定義 這就是這個函式或者變數。定義處,為函式或變數分配儲存空間。乙個變數或函式,只能有乙個定義。one definition rule.定義也可以是宣告。如果乙個變數或者函式有多個檔案要用,可以用extern.extern 的原理很簡單,就是...