c 中的 extern 能够使一个变量的声明的作用域提升到全局
比如说我在 main.c 的 main 函数中声明了 两个变量 int a,b; 而这两个变量在另一个源文件中 test.c 有其定义:int a = 10;int b =30; 这时候如果我要在 main.c 的 main 函数中单纯以 int a,b; 的声明方式是无法使用这两个变量的(未定义),除非加了 extern
这个是 extern 的一种用法
但是假设我这个 int a,b; 并不是声名在 main.c 的 main 函数内部,而是 外部,那我还是照样可以拿到在 test.c 所定义的 a 和 b 啊,在这种情况我加不加 extern 有啥区别
talk cheap,show me the code...
情景一: main.c 中不使用 extern 声明外部变量
******main.c
#include <stdio.h>
int a;
int main(void) {
a = 40;
extern int a;
printf("%d\n", a);
system("pause");
return EXIT_SUCCESS;
}
******test.c
int a = 66666;
******result: 66666
情景一: main.c 中使用 extern 声明外部变量
******main.c
#include <stdio.h>
extern int a;
int main(void) {
a = 40;
extern int a;
printf("%d\n", a);
system("pause");
return EXIT_SUCCESS;
}
******test.c
int a = 66666;
******result: 66666
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.