为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用extern在源文件之间共享变量?

如何使用extern在源文件之间共享变量?

人到中年有点甜 2019-05-22 13:12:26
我知道C中的全局变量有时会有extern关键字。什么是extern变量?宣言是什么样的?它的范围是什么?这与跨源文件共享变量有关,但这是如何工作的?我在哪里用extern?

4 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

extern变量是在另一个翻译单元中定义的变量的声明(由于sbi用于校正)。这意味着变量的存储空间分配在另一个文件中。

假设你有两个.c-files test1.ctest2.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


查看完整回答
反对 回复 2019-05-22
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

我喜欢将extern变量视为您对编译器的承诺。

遇到extern时,编译器只能找到它的类型,而不是它“存在”的位置,因此它无法解析引用。

你告诉它,“相信我。在链接时,这个引用将是可解析的。”


查看完整回答
反对 回复 2019-05-22

添加回答

代码语言

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号