在头文件中使用全局变量我们可以在另一个文件中更改值/使用变量(相同的值可以在多个文件中访问/修改),那么为什么可以使用 extern 呢?global 和 extern 和有什么不一样?
下面是我尝试过的示例它在 c 中的外部变量和全局变量之间没有区别。
程序编译运行成功,没有任何错误。
th
int i;
t1.c
#include<stdio.h>
#include "t.h"
int main()
{
i=10;
printf("%s i = %d\n",__func__, i);
t2();
printf("%s i = %d\n",__func__, i);
i=200;
printf("%s i = %d\n",__func__, i);
t3();
printf("%s i = %d\n",__func__, i);
return 0;
}
t2.c
#include<stdio.h>
#include "t.h"
void t2()
{
printf("%s i=%d\n",__func__, i);
i = 100;
printf("%s i=%d\n",__func__, i);
}
t3.c
#include<stdio.h>
#include "t.h"
void t3()
{
printf("%s i=%d\n",__func__, i);
i = 300;
printf("%s i=%d\n",__func__, i);
}
输出:- gcc t1.c t2.c t3.c
main i = 10
t2 i=10
t2 i=100
main i = 100
main i = 200
t3 i=200
t3 i=300
main i = 300