C C C 宣告和定義的區別

2021-10-04 05:23:06 字數 688 閱讀 7336

1.定義也是宣告,extern宣告不是定義,即不分配儲存空間。extern告訴編譯器變數在其他地方定義了。

extern

int i;

//宣告,不是定義

int i;

//宣告,也是定義

2.如果宣告有初始化式,就被當作定義,即使前面加了extern。只有當extern宣告位於函式外部時,才可以被初始化。

extern

double pi=

3.1416

;//定義

3.函式的宣告和定義區別比較簡單,帶有的就是定義,否則就是宣告。

extern

double

max(

double d1,

double d2)

;//宣告,此時extern可去掉

程式設計風格:

總結:

注:有三個例外,以下三種實體的定義也可放到標頭檔案中。

這三個實體可以定義在多個原始檔中,只要在每個原始檔中的定義相同。

**:

宣告和定義的區別

c primer 3rd 5.2宣告語句講得不清不楚的,還是effective c 2nd講得清楚 所謂宣告 declaration 就是用來將乙個object function class 或tempate的型別名稱告訴編譯器 宣告式並不帶有細節資訊 對object而言,其定義式是編譯器為它配置記...

宣告和定義的區別

宣告和定義的區別 2012 03 22 14 34 標籤 declare define 分類 c language 變數定義 用於為變數分配儲存空間,還可為變數指定初始值。程式中,變數有且僅有乙個定義。變數宣告 用於向程式表明變數的型別和名字。定義也是宣告 當定義變數時我們宣告了它的型別和名字。ex...

宣告和定義的區別

宣告和定義的區別 從編譯原理上來說 宣告是僅僅只告訴編譯器有某個型別變數被使用,編譯器並不會為它分配任何記憶體。而定義就是為其分配了記憶體空間。宣告不一定是定義,定義一定是定義 變數的定義 用於為變數分配儲存空間,也可為變數指定初始值,變數有且僅有乙個定義。變數的宣告 用於向程式表明變數的型別和名字...