變數的定義(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...