C 中宣告與定義的區別

2021-04-12 17:52:29 字數 581 閱讀 8782

宣告:一種把乙個名稱引入或者重新引入到某個c++作用域的構造。

定義:它也是一種宣告,但該宣告必須給出被宣告實體的細節。

對於變數而言,這裡的細節是指:為被宣告實體保留儲存空間。

對於class型別和函式定義而言,指的是包含有一隊花括號內容的宣告。

對於外部變數而言,指的是前面沒有關鍵字extern或者在宣告時就進行初始化。

變數的宣告有兩種情況: 

一種是需要建立儲存空間的。例如:int a 在宣告的時候就已經建立了儲存空間。 

另一種是不需要建立儲存空間的 例如:extern int a 其中 變數a是在別的檔案中定義的.前者是"定義性宣告 (defining declaration)"或者稱為"定義(definition)",而後者是"引用性宣告 (referncing declaration)" 從廣義的角度來講 宣告中包含著定義,但是並非所有的宣告都是定義,例如:int a 它既是宣告,同時又是定義。然而對於 extern a 來講 它只是宣告不是定義。一般的情況下我們常常這樣敘述,把建立空間的宣告稱之為"定義",而把不需要建立儲存空間稱之為"宣告"。很明顯我們在這裡指的生命是範圍比較窄的,也就是說非定義性質的宣告.

C 中定義與宣告的區別

c 中的定義與宣告是兩個很容易混淆的概念,而且對於初學者來說,必須要區分兩個概念的不同。乙個變數的定義是用於為變數分配儲存空間。也可以為變數指定初始值。也就是說,定義不一定要有初始值,但是一定要分配儲存空間。而乙個變數的宣告則是說明乙個變數的型別以及名字。定義也是宣告,讀者可以這樣想,如果乙個變數要...

C 定義與宣告 區別

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

C 宣告與定義的區別

一,宣告與定義的區別 宣告是將乙個名稱引入程式。定義提供了乙個實體在程式中的唯一描述,涉及到記憶體空間的分配以及初始值的設定。宣告和定義有時是同時存在的。1,定義也是宣告,extern宣告不是定義,即不分配儲存空間。int a 10 定義就是宣告 extern int b 宣告,不是定義 注意 如果...