函式或者變數的宣告在程式中可以出現多次,但是函式或者變數的定義只能夠出現一次,因此,一般把宣告放在標頭檔案中,把定義放在cpp檔案中。
1、關於變數的宣告和定義
在標頭檔案中寫:int g_ntmp,編譯器會認為這是乙個定義,因此在鏈結的時候會出錯 。解決這個問題有兩個辦法:(1)寫成const int g_ntmp=0,這是因為const和inline一樣具有「只能定義一次」的例外(2)寫成extern int g_ntmp,這純粹就是乙個宣告,表示告訴編譯器該變數在別的地方已經有定義
2、關於函式的宣告和定義
在標頭檔案寫這個函式:void fun() ,編譯器認為這是乙個定義,因此鏈結的時候會出錯。解決方法是:將函式寫成內聯函式,即inline void fun()
宣告和定義
宣告 向計算機介紹名字,它說,這個名字是什麼意思 而 定義 為這個名字分配 儲存空間。無論涉及到變數時還是函式時含義都一樣。無論在哪種情況下,編譯器都在 定義 處分配儲存空間。對於變數,編譯器確定這個變數佔多少儲存單元,並在記憶體中產生存放它們 的空間。對於函式,編譯器產生 並為之分配儲存空間。函式...
宣告和定義
在宣告部分出現變數有兩種情況 1 一種是需要建立儲存空間的,如 int a 2 另一種是不要建立儲存空間的,如 extern int a 前者是 定義性宣告 defining declaration 或者稱為 定義 definition 後者是 引用性宣告 referencing declarati...
宣告和定義
宣告 函式或變數會在某處出現,在此處,該函式或變數長這樣。定義 這就是這個函式或者變數。定義處,為函式或變數分配儲存空間。乙個變數或函式,只能有乙個定義。one definition rule.定義也可以是宣告。如果乙個變數或者函式有多個檔案要用,可以用extern.extern 的原理很簡單,就是...