如何在c文件之间共享全局变量?

pet*_*erl 45 c extern

如果我在.c文件中定义一个全局变量,我如何在另一个.c文件中使用相同变量的值?

在file1.c

#include<stdio.h>

int i=10;

int main()
{
printf("%d",i);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

file2.c中

#include<stdio.h>

int main()
{
//some data regarding i
printf("%d",i);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

第二个文件如何使用i此处第一个文件的值.

Tri*_*Man 62

档案1:

int x = 50;
Run Code Online (Sandbox Code Playgroud)

档案2:

extern int x;

printf("%d", x);
Run Code Online (Sandbox Code Playgroud)

  • @fresh_graduate:在头文件中放置`extern int x;`行,并在file2.c中包含该文件,*与将该行放在file2.c中具有*完全相同的效果.这取决于你如何组织你的代码,你需要的只是在预处理器完成包含和其他所有操作后,文件2中包含该行. (16认同)
  • 不,我没有忘记任何事情.我只是在解释你将在这些文件中添加的内容. (5认同)
  • 另外,文件1不应该是头文件,它应该是.c文件.文件2可以是包含"extern int x"部分的头文件. (3认同)

mdm*_*mdm 5

使用extern关键字在另一个文件中声明变量.c。例如:

extern int counter;
Run Code Online (Sandbox Code Playgroud)

意味着实际存储位于另一个文件中。它可用于变量和函数原型。