C語言中宣告與定義的區別

2021-07-03 16:13:47 字數 550 閱讀 4562

定義和宣告判斷:        a)int i;//定義;                          b)extern int i;  //宣告;

定義:定義就是(編譯器)建立乙個物件,為這個物件分配一塊記憶體並給它取上乙個名字,這個名字就是我們經常所說的變數名或物件名。乙個變數或物件在一定的區

域內(比如函式內,全域性等)只能被定義一次,如果定義多次,編譯器會提示你重複定義同乙個變數或物件。

宣告:有兩重含義,如下:

第一重含義:告訴編譯器,這個名字已經匹配到一塊記憶體上了,下面的**用到變數或物件是在別的地方定義的。宣告可以出現多次。

第二重含義:告訴編譯器,我這個名字我先預定了,別的地方再也不能用它來作為變數名或物件名。這種宣告最典型的例子就是函式引數的宣告,例如:void fun(int i, char c);

我們可以很清楚的判斷:a)是定義;b)是宣告。

記住,定義宣告最重要的區別:定義宣告最重要的區別:定義建立了物件並為這個物件分配了記憶體,宣告沒有分配記憶體。

C語言中的定義與宣告

什麼是定義?什麼是宣告?它們有何區別?舉個例子 12 a inti b externinti 關於extern,後面解釋 哪個是定義?哪個是宣告?或者都是定義或者都是宣告?什麼是定義 所謂的定義就是 編譯器 建立乙個物件,為這個物件分配一塊記憶體並給它取上乙個名字,這個名字就是我們經常所說的變數名或...

C語言中宣告和定義的區別

宣告指定了乙個變數的識別符號,用來描述變數的型別,用於編譯器識別變數名所引用的實體。定義是對宣告的實現或者是例項化,為變數分配儲存空間,還可以給變數賦初始值。變數的宣告和定義 int a 需要建立儲存空間 既是定義,也是宣告 extern int a 不需要建立儲存空間 只是宣告,不是定義 如果宣告...

C語言中,宣告和定義的區別

二 針對變數時 三 針對函式時 四 參考 定義就是建立乙個物件,給它分配記憶體並取名字 變數名或物件名 還可以指定初值。另外,乙個變數或物件只能被定義一次,否則編譯器會提示重複定義。用於向程式表明變數的型別和名字。告訴編譯器這個名字已使用,別的地方不能再用它作為變數名或物件名。另外,宣告可以出現多次...