變數宣告向編譯器保證變數以指定的型別和名稱存在,這樣編譯器在不需要知道變數完整細節的情況下也能繼續進一步的編譯。變數宣告只在編譯時有它的意義,在程式連線時編譯器需要實際的變數宣告。
變數的宣告有兩種情況:
extern
int i;
//宣告,不是定義
int i;
//宣告,也是定義
一種是需要建立儲存空間的。例如:int a 在宣告的時候就已經建立了儲存空間。
另一種是不需要建立儲存空間的,通過使用extern關鍵字宣告變數名而不定義它。 例如:extern int a 其中變數 a 可以在別的檔案中定義的。
除非有extern關鍵字,否則都是變數的定義。
例如
#include
// 函式外定義變數 x 和 y
int x;
int y;
intadd()
intmain()
結果如果需要在乙個原始檔中引用另外乙個原始檔中定義的變數,我們只需在引用的檔案中將變數加上 extern 關鍵字的宣告即可result : 3
add.c檔案
#include
/*外部變數宣告*/
extern
int x ;
extern
int y ;
intadd()
text.c檔案
#include
/*定義兩個全域性變數*/
int x=1;
int y=2;
intadd()
;int
main
(void
)
左值(lvalue):指向記憶體位置的表示式被稱為左值表示式。左值可以出現在賦值號的左邊或右邊。
變數是左值,因此可以出現在賦值號的左邊。數值型的字面值是右值,因此不能被賦值,不能出現在賦值號的左邊。
C 一些細節
include include pthread.h using namespace std static pthread mutex t mutex class single class single public static single instance static single getin...
C 的一些細節
1.c 中,將負數賦值給unsigned是完全合法的。例如,將 1賦值給unsigned char,那麼結果是255.2.c 中,double的精度和計算速度都要超過float,long double則需要承擔額外的執行代價。3.std ou t hi d endl 等價於std out hi 4....
關於C 的一些細節 一
一.概述 b.s.真正的程式設計需要比純粹的原理更重要 資料 演算法 程式 通用程式設計 gp強調演算法 oop強調資料 可移植性和標準 將依賴於硬體的部分放在函式模組中.二.c 程式設計 1.關於標頭檔案 iostream 新編譯器 使用 include using namespace std 老...