在多个C文件中全局共享变量的方法: 在其中一个文件中,定义一个全局变量,在其他几个C文件中申明一个相同的extern的全局变量。只有初次定义的C 文件中的全局变量才会被分配空间,其余文件中被extern修饰的全局变量,只是申明该变量来自外部,编译器不会分配空间。 在一个头文件中定义一个变量,在各个C文件中包含引用,并不能全局共享该变量,会有重复定义的编译错误。 eg : (1) 结果展示 (2)源码
--> main.c :
#include <stdio.h>
int global = 10;
int main(void) {
printf("%s global : %d\n", __func__, global);
c_main(); b_main(); a_main();
return 0; }
--> a.c : #include <stdio.h>
extern int global;
extern void a_main(void) { //global = 20;
printf("%s global : %d\n", __func__, global);
return ; }
--> b.c :
#include <stdio.h>
extern int global;
extern int b_main(void) { //global = 30;
printf("%s global : %d\n", __func__, global);
return ; }
--> c.c :
#include <stdio.h>
extern int global;
extern int c_main(void) { //global = 40;
printf("%s global : %d\n", __func__, global);
return ; }