我知道C中的全局變量有時會有extern關鍵字。什么是extern變量?宣言是什么樣的?它的范圍是什么?這與跨源文件共享變量有關,但這是如何工作的?我在哪里用extern?
4 回答
繁花如伊
TA貢獻2012條經驗 獲得超12個贊
extern變量是在另一個翻譯單元中定義的變量的聲明(由于sbi用于校正)。這意味著變量的存儲空間分配在另一個文件中。
假設你有兩個.c-files test1.c和test2.c。如果您在其中定義了一個全局變量int test1_var;,test1.c并且您想要訪問此變量,test2.c則必須使用extern int test1_var;in test2.c。
完整樣本:
$ cat test1.c
int test1_var = 5;$ cat test2.c#include <stdio.h>extern int test1_var;int main(void) {
printf("test1_var = %d\n", test1_var);
return 0;}$ gcc test1.c test2.c -o test
$ ./test
test1_var = 5
慕桂英3389331
TA貢獻2036條經驗 獲得超8個贊
我喜歡將extern變量視為您對編譯器的承諾。
遇到extern時,編譯器只能找到它的類型,而不是它“存在”的位置,因此它無法解析引用。
你告訴它,“相信我。在鏈接時,這個引用將是可解析的?!?/p>
- 4 回答
- 0 關注
- 1071 瀏覽
添加回答
舉報
0/150
提交
取消
