一、問題二、詳解2、全域性變數在外部使用宣告時,extern關鍵字是必須的,如果變數沒有extern修飾且沒有顯式的初始化,同樣成為變數的定義,因此此時必須加extern,而編譯器在此標記儲存空間在執行時載入內並初始化為0。而區域性變數的宣告不能有extern的修飾,且區域性變數在執行時才在堆疊部分分配記憶體。
3、全域性變數或函式本質上講沒有區別,函式名是指向函式二進位制塊開頭處的指標。而全域性變數是在函式外部宣告的變數。函式名也在函式外,因此函式也是全域性的。
4、謹記:宣告可以多次,定義只能一次。
5、extern int i; //宣告,不是定義
int i; //宣告,也是定義
三、示例
1、**
/* test.c */
#include int etn = 100;
void layout()
/* main.c */
#include extern int etn;
int main()
2、執行結果
參考
1、extern使用方法總結!
2、c--變數的作用域、儲存方式與生命週期
extern使用方法總結
include stdafx.h extern print char p int main int argc,char argv 內容如下 include stdafx.h include stdio.h print char s 結果程式可以正常執行,輸出結果。如果把 extern 去掉,程式依然...
extern使用方法總結!
2 全域性變數在外部使用宣告時,extern關鍵字是必須的,如果變數沒有extern修飾且沒有顯式的初始化,同樣成為變數的定義,因此此時必須加extern,而編譯器在此標記儲存空間在執行時載入內並初始化為0。而區域性變數的宣告不能有extern的修飾,且區域性變數在執行時才在堆疊部分分配記憶體。3 ...
extern使用方法總結!
2 全域性變數在外部使用宣告時,extern關鍵字是必須的,如果變數沒有extern修飾且沒有顯式的初始化,同樣成為變數的定義,因此此時必須加extern,而編譯器在此標記儲存空間在執行時載入內並初始化為0。而區域性變數的宣告不能有extern的修飾,且區域性變數在執行時才在堆疊部分分配記憶體。3 ...