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

我知道C中的全局变量有时会有extern关键字。什么是extern变量?宣言是什么样的?它的范围是什么?

这与跨源文件共享变量有关,但这是如何工作的?我在哪里用extern


人到中年有点甜
浏览 1029回答 4
4回答

繁花如伊

extern变量是在另一个翻译单元中定义的变量的声明(由于sbi用于校正)。这意味着变量的存储空间分配在另一个文件中。假设你有两个.c-files&nbsp;test1.c和test2.c。如果您在其中定义了一个全局变量int test1_var;,test1.c并且您想要访问此变量,test2.c则必须使用extern int test1_var;in&nbsp;test2.c。完整样本:$&nbsp;cat&nbsp;test1.c&nbsp; int&nbsp;test1_var&nbsp;=&nbsp;5;$&nbsp;cat&nbsp;test2.c#include&nbsp;<stdio.h>extern&nbsp;int&nbsp;test1_var;int&nbsp;main(void)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;printf("test1_var&nbsp;=&nbsp;%d\n",&nbsp;test1_var); &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;}$&nbsp;gcc&nbsp;test1.c&nbsp;test2.c&nbsp;-o&nbsp;test $&nbsp;./test test1_var&nbsp;=&nbsp;5

慕桂英3389331

我喜欢将extern变量视为您对编译器的承诺。遇到extern时,编译器只能找到它的类型,而不是它“存在”的位置,因此它无法解析引用。你告诉它,“相信我。在链接时,这个引用将是可解析的。”
打开App,查看更多内容
随时随地看视频慕课网APP