我正在运行以下一起编译的代码:gcc A.c B.c -o combined
方案一:
#include<stdio.h>
int a=1;
int b;
int main()
{
extern int a,b;
fun();
printf("%d %d\n",a,b);
}
方案 B:
int a;
int b=2;
int fun()
{
printf("%d %d\n",a,b);
return 0;
}
在运行“组合”程序时,输出为:
1 2
1 2
现在,我对这个有一些疑问:
为什么没有输出:
0 2
1 0
a 和 b 不是定义了两次吗?
请清楚地解释这些,我在理解 extern 时遇到了很多问题,而且这些疑问很少不时出现。
提前致谢。