c 中的定義和宣告

2021-08-21 21:17:33 字數 588 閱讀 2169

在c++中,定義和宣告時兩個不同的概念。宣告表示告訴編譯器,有某個函式或者變數,可以再某處找到。而定義表示在"這裡建立函式或者在這裡建立變數",即會分配儲存空間。

在c++裡面,用extern關鍵字來表示宣告,它表示"這只是乙個宣告,函式或者變數在檔案以外定義或者檔案後面定義",並且函式和變數的宣告有些不一樣。

1 對於函式來說,關鍵字extern可以省略,因此:

extern

int func1(int length, int width);

int func1(int length, int width);

這兩個函式宣告效果一樣。

2 對於變數來說,如果只想宣告而不定義,必須加extern:

extern

int x;

上面的語句只宣告變數x,而不定義,也就是只是告訴編譯器有x這個變數,它是整型,可以再外部檔案或者本檔案後面找到它,但是不定義,也就是不給它分配儲存空間。

若果將extern關鍵字去掉,變成int x;如果編譯器在之前並沒有遇到x識別符號,那麼編譯器會把它看成宣告,並立即定義它,也就是會給他分配儲存空間。

定義和宣告

定義 什麼是定義?所謂的定義就是 編譯器 創造乙個物件,為這個物件分配一塊記憶體並給它取上乙個名字,這個名字就是我們常常說的定義名或物件名。但注意,這個名字一旦和這塊記憶體匹配起來 可以想象是這個名字嫁給了這塊空間,沒有要彩禮啊 它們就生死與共,終生不離不棄,並且這塊內 存的位置也不能被改變。乙個變...

C 類的定義和宣告

c 語言可以看成是c語言的擴充套件和改進,相對於c語言,c 語言主要是增添了物件導向的特性。類 class 則是c 物件導向程式設計的實現方式。無論是何種程式語言,進行物件導向程式設計都將是從類的設計開始的。什麼是類呢?其實很簡單,我們可以理解為一種使用者自定義的資料型別,類似於c語言裡面的結構體 ...

C語言定義和宣告區別

1.變數的定義和宣告 c語言定義和宣告分為變數的定義和宣告和函式的定義和宣告。由於,函式是具有全域性外部特性,並且函式的定義和宣告區別是很明顯的。其宣告需要返回值型別,函式名和引數列表。而函式的定義需要函式體。所以,很容易區別函式的宣告和定義。對於變數的宣告和定義,就不是那麼明顯。通常變數定義和宣告...