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

2021-08-09 10:36:27 字數 506 閱讀 4644

宣告指定了乙個變數的識別符號,用來描述變數的型別,用於編譯器識別變數名所引用的實體。

定義是對宣告的實現或者是例項化,為變數分配儲存空間,還可以給變數賦初始值。

變數的宣告和定義:

int a;//需要建立儲存空間          既是定義,也是宣告

extern int a;//不需要建立儲存空間         只是宣告,不是定義

如果宣告有初始化,就被當作定義,即使前面有extern,例如:

extern int a = 5;     定義

函式的宣告和定義:

帶有的都是定義,否則就是宣告。

在編譯時,編譯器只會檢測程式語法和函式、變數是否被宣告。如果函式未被宣告,編譯器會給出乙個警告。但可以生成目標檔案。但在鏈結時,鏈結器會在所有目標檔案中尋找函式的實現,如果找不到,就會報鏈結錯誤碼。

總結:定義會分配儲存空間,而宣告不會分配儲存空間

變數在使用前就要被定義或宣告

在乙個程式中,變數只能定義一次,但可以多次宣告

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

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

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

定義和宣告判斷 a int i 定義 b extern int i 宣告 定義 定義就是 編譯器 建立乙個物件,為這個物件分配一塊記憶體並給它取上乙個名字,這個名字就是我們經常所說的變數名或物件名。乙個變數或物件在一定的區 域內 比如函式內,全域性等 只能被定義一次,如果定義多次,編譯器會提示你重複...

C語言中宣告和定義詳解

c 程式通常由許多檔案組成,為了讓多個檔案訪問相同的變數,c 區分了宣告和定義。變數的定義 definition 用於為變數分配儲存空間,還可以為變數指定初始值。在程式中,變數有且僅有乙個定義。宣告 declaration 用於向程式表明變數的型別和名字。定義也是宣告 當定義變數的時候我們宣告了它的...