C 宣告與定義

2021-09-30 13:27:24 字數 635 閱讀 4248

一般解釋來說:

宣告是告訴編譯器存在這麼乙個識別符號。

定義則是為程式申請一塊記憶體。下面舉例說下需要注意的事項。

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

例如:extern double pi=3.1416;  //定義

b.除非有extern關鍵字,否則都是變數的定義。

例如:extern int i; //宣告

int i; //定義  

c.注意標頭檔案中不可以放變數的定義!!!一般情況下標頭檔案中只放變數的宣告,因為標頭檔案要被其他檔案包含(即#include),如果把定義放到標頭檔案的話,就不能避免多次定義變數,c++不允許多次定義變數,乙個程式中對指定變數的定義只有一次,宣告可以無數次。

不過有三個例外,一下三中實體的定義也可放到標頭檔案中。

1.值在編譯時就已知的const 變數的定義可以放到標頭檔案中

如:const int num(10);(如果const變數不是使用常量表示式初始化,那麼就不能在標頭檔案中初始化該變數,而是要在原始檔中定義並初始化該變數。然後在標頭檔案中新增extern宣告,以使其能夠被多個檔案共享。 )

2.類的定義可以放到標頭檔案中

3.inline 函式

C 定義與宣告 區別

c primer 第四版2.3.5節中這麼說到 變數定義 用於為變數分配儲存空間,還可為變數指定初始值。程式中,變數有且僅有乙個定義。變數宣告 用於向程式表明變數的型別和名字。定義也是宣告 當定義變數時我們宣告了它的型別和名字。extern關鍵字 通過使用extern關鍵字宣告變數名而不定義它。1....

宣告與定義

我們在程式設計中,時時刻刻都用到變數的定義和變數的宣告,可有些時候我們對這個概念不是很清楚,知道它是怎麼用,但卻不知是怎麼一會事,下面我就簡單的把他們的區別介紹如下 變數的宣告有兩種情況 1 一種是需要建立儲存空間的 定義 宣告 例如 int a在宣告的時候就已經建立了儲存空間。2 另一種是不需要建...

宣告與定義

什麼是宣告?什麼是定義?它們有什麼區別?定義 什麼是定義 所謂的定義就是 編譯器 建立乙個物件,為這個物件分配一塊記憶體並給它取上名字,這個名字就是我們經常所說的變數名或物件名。但是注意,這個名字一旦和這塊記憶體匹配起來 可以想象是這個名字嫁給了這塊空間 它們就同生共死 終身不離不棄,並且這塊記憶體...