C C 宣告與定義

2021-05-26 08:12:23 字數 1147 閱讀 2001

變數的定義(definition):

用於為變數分配儲存空間,還可以為變數指定初始值。在乙個程式中,變數有且僅有乙個定義;

變數的宣告(declaration):用於向程式表明變數的型別和名字

定義也是宣告:當定義變數時我們宣告了它的型別和名字。可以通過使用extern關鍵字宣告變數名而不定義它。

有分配空間的叫定義,沒分配空間的叫宣告。

另外,「定義」

的同時一定耦合了乙個「宣告

」 簡單來說有下面四種情況:

1.變數和物件不加

extern

永遠是定義,類中的除外。

int i;          //定義

string str; //定義

extern int i; //宣告

2.函式只有函式頭是宣告,有函式體是定義。

void fun (int i, char c) ; // fun是宣告, i, char, 也是宣告  

void fun (int i, char c) // fun是定義

3.如果宣告有初始化式,就被當作定義,即使前面加了

extern。

extern double pi = 3.14159;
4.

類的情況

class a;  //a的宣告  

class a;//a的定義

class a

; int a::x; //這個才是定義

const int a::a=11; //這個才是定義

注:在vc

裡編譯下面**會出現以下錯誤

void fun(int a, int a); // a

應該是個宣告

error c2086: 'a' : redefinition

提示說是重複定義,其實

a是宣告,但總不能說重複宣告吧,再說宣告是可以多次的,所以這裡提示的『定義』非我們上面提到的『定義』。

C C 宣告與定義

declaration 宣告 指將乙個名稱引入當前編譯單元,或者重新宣告乙個前面已經宣告過的名稱,宣告指定了如何解釋乙個名稱和該名稱具有的屬性 例如 int main definition 定義 除了以下情況,宣告就是定義 a.宣告函式但不包括函式體 b.宣告包含extern鏈結限定符,例如 ext...

c c 變數定義與宣告

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

C C 中宣告與定義

今天在寫程式的時候遇到這樣乙個問題 我的工程分為 main.cpp paint.cpp file.cpp struct.h 最初的想法是在標頭檔案中把結構體和所有的資料定義出來,如果哪個cpp檔案用到了這些東西,直接加入該標頭檔案就好了,結果報錯 經過查資料,發現將資料定義在標頭檔案中,如果多個cp...