宣告和定義

2021-05-22 06:05:29 字數 428 閱讀 3307

「宣告」向計算機介紹名字,它說,「這個名字是什麼意思」。而「定義」為這個名字分配

儲存空間。無論涉及到變數時還是函式時含義都一樣。無論在哪種情況下,編譯器都在「定義」

處分配儲存空間。對於變數,編譯器確定這個變數佔多少儲存單元,並在記憶體中產生存放它們

的空間。對於函式,編譯器產生**,並為之分配儲存空間。函式的儲存空間中有乙個由使用

不帶參數列或帶位址操作符的函式名產生的指標。

定義也可以是宣告。如果該編譯器還沒有看到過名字a,程式設計師定義int a,則編譯器馬上

為這個名字分配儲存位址。

宣告常常使用於e x t e r n關鍵字。如果我們只是宣告變數而不是定義它,則要求使用e x t e r n。

對於函式宣告, e x t e r n是可選的,不帶函式體的函式名連同參數列或返回值,自動地作為乙個

宣告。

宣告和定義

在宣告部分出現變數有兩種情況 1 一種是需要建立儲存空間的,如 int a 2 另一種是不要建立儲存空間的,如 extern int a 前者是 定義性宣告 defining declaration 或者稱為 定義 definition 後者是 引用性宣告 referencing declarati...

宣告和定義

宣告 函式或變數會在某處出現,在此處,該函式或變數長這樣。定義 這就是這個函式或者變數。定義處,為函式或變數分配儲存空間。乙個變數或函式,只能有乙個定義。one definition rule.定義也可以是宣告。如果乙個變數或者函式有多個檔案要用,可以用extern.extern 的原理很簡單,就是...

宣告和定義

函式或者變數的宣告在程式中可以出現多次,但是函式或者變數的定義只能夠出現一次,因此,一般把宣告放在標頭檔案中,把定義放在cpp檔案中。1 關於變數的宣告和定義 在標頭檔案中寫 int g ntmp,編譯器會認為這是乙個定義,因此在鏈結的時候會出錯 解決這個問題有兩個辦法 1 寫成const int ...