如何在c文件之间共享一个全局variables?

如果我在一个.c文件中定义一个全局variables,我怎样才能在另一个.c文件中使用同一个variables的值?

在file1.c

 #include<stdio.h> int i=10; int main() { printf("%d",i); return 0; } 

file2.c中

 #include<stdio.h> int main() { //some data regarding i printf("%d",i); return 0; } 

第二个文件如何使用第一个文件中的i的值。

文件1:

 int x = 50; 

文件2:

 extern int x; printf("%d", x); 

在头文件或其他C文件中使用extern <variable type> <variable name>

使用extern关键字来声明另一个.c文件中的variables。 例如:

 extern int counter; 

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

在第二个.c文件中使用具有相同variables名称的extern关键字。

像在file1.c中一样在file2.c中:

 #include <stdio.h> extern int i; /*This declare that i is an int variable which is defined in some other file*/ int main(void) { /* your code*/ 

如果你使用int i; 在main()下的file2.c中,那么我将被视为与file1.c中定义的不同的本地自动variables

在另一个.c文件中使用extern关键字。

如果你想在file2.c中使用file1.c的全局variablesi,那么下面是要记住的点:

  1. main函数不应该在file2.c中存在
  2. 现在全局variables我可以通过两种方式与file2.c共享:
    a)通过在file2.c中声明extern关键字,即extern int i;
    b)通过在头文件中定义variablesi并将该头文件包含在file2.c中。