定義:指的是在**中定義乙個變數、函式,定義的最顯著的乙個特徵是,執行定義後,編譯器會在記憶體中分配一塊記憶體給所定義的變數或函式,
如執行
int a ,b,c= 0;
都會在記憶體中分配一定的空間以存放這幾個變數。
宣告:宣告的目的是在於告訴編譯器,系統中已經有這麼乙個名字是aaa的變數或者函式了,我要用的就是那個已經定義好的名字為aaa的變數或函式,相比定義來講,執行宣告操作並不會重新分配記憶體,只是引用了已經定義好的變數或函式
如執行
extern int a ,b c ;
或
int function_test(int temp);
這就是宣告, 也即當我們要使用的a,b,c變數就是已經在其他原始檔中定義好的a,b,c時,需要執行extern int a,b,c來告訴編輯器,我的變數是從別的原始檔來的。
同時,我們在乙個原始檔中進行乙個全域性變數的定義時,對於該原始檔來講,執行定義的語句,不僅是一種定義,還具有宣告的功能。
處理定義和宣告
這裡提供一種全域性變數引用的方法:
在.c檔案中宣告變數,然後在標頭檔案.h所有的變數宣告前加上extern,注意在.**件中不要對變數進行賦值。然後其他需要使用全域性變數
的.c檔案中包含.**件即可。編譯器會為.c生成目標檔案,然後鏈結時,如果該.c檔案使用了全域性變數,鏈結器就會鏈結到此.c檔案。
其他檔案需要使用此全域性變數也是同樣的方式,目的其實只有乙個,就是使變數在記憶體中唯一化。
C語言定義和宣告區別
1.變數的定義和宣告 c語言定義和宣告分為變數的定義和宣告和函式的定義和宣告。由於,函式是具有全域性外部特性,並且函式的定義和宣告區別是很明顯的。其宣告需要返回值型別,函式名和引數列表。而函式的定義需要函式體。所以,很容易區別函式的宣告和定義。對於變數的宣告和定義,就不是那麼明顯。通常變數定義和宣告...
C語言定義和宣告區別
c語言定義和宣告區別 1.變數的定義和宣告 c語言定義和宣告分為變數的定義和宣告和函式的定義和宣告。由於,函式是具有全域性外部特性,並且函式的定義和宣告區別是很明顯的。其宣告需要返回值型別,函式名和引數列表。而函式的定義需要函式體。所以,很容易區別函式的宣告和定義。對於變數的宣告和定義,就不是那麼明...
C語言函式的定義和宣告。
函式的定義 函式的定義就是函式體的實現。函式體就是乙個 塊,它在函式被呼叫時執行,與函式定義相反的是,函式宣告出現在函式被呼叫的地方。函式宣告向編譯器提供該函式的相關資訊,用於確保函式被正確的呼叫。那麼函式到底是如何定義的呢?請看下面的語法 型別 函式名 形式引數 塊最簡單的 function na...