一、宣告:指定了乙個變數的識別符號,用來描述變數的型別,是型別還是物件,或者函式等等,用於編譯器識別變數名所引用的實體。
定義:是對宣告的實現或者例項化
例:int a; //屬於宣告,並沒有給a 定義它的值
int a=3; //宣告變數a為int型別,並定義為3.
定義在前,宣告在後。
二、宣告與定義的區別:
定義:編譯器建立乙個物件,為這個物件分配一塊記憶體並給他取乙個名字,這個名字就是變數名或者物件,名字與記憶體一旦匹配,就不能改變。乙個變數或物件只能在一定的區域內定義一次。
宣告:(1)告訴編譯器,這個名字已經匹配到一塊記憶體上了,宣告可以出現多次
(2)告訴編譯器,這個名字已經被預定,別的地方已經不能用它來作變數名或物件名
區別:定義建立了物件,並為這個物件分配了記憶體,
宣告沒有分配記憶體
eg: int a 既是宣告也是定義
extern int a 宣告
聯絡:宣告包括定義,但並非所有的宣告都是定義,把需要建立儲存空間的宣告叫定義,不需要建立儲存空間的宣告叫宣告。
宣告和定義的區別
c primer 3rd 5.2宣告語句講得不清不楚的,還是effective c 2nd講得清楚 所謂宣告 declaration 就是用來將乙個object function class 或tempate的型別名稱告訴編譯器 宣告式並不帶有細節資訊 對object而言,其定義式是編譯器為它配置記...
宣告和定義的區別
宣告和定義的區別 2012 03 22 14 34 標籤 declare define 分類 c language 變數定義 用於為變數分配儲存空間,還可為變數指定初始值。程式中,變數有且僅有乙個定義。變數宣告 用於向程式表明變數的型別和名字。定義也是宣告 當定義變數時我們宣告了它的型別和名字。ex...
宣告和定義的區別
宣告和定義的區別 從編譯原理上來說 宣告是僅僅只告訴編譯器有某個型別變數被使用,編譯器並不會為它分配任何記憶體。而定義就是為其分配了記憶體空間。宣告不一定是定義,定義一定是定義 變數的定義 用於為變數分配儲存空間,也可為變數指定初始值,變數有且僅有乙個定義。變數的宣告 用於向程式表明變數的型別和名字...