在下面的代码中,我从file2.c中var10的变量声明中删除了词extern我期待在两个文件中的变量var10是相互独立的,并且都有文件范围当extern不在其中一个文件中使用时。但结果是10和34,而不是我所期望的10和10。所以我们不能使用文件作用域而不使用静态关键字?为什么在两个变量的作用域相同的情况下我们不会得到多重定义错误?我用codeblcoks + MinGW的变量与C中的文件范围没有静态关键字
file1.c中
#include <stdio.h>
int var10;
int main (void)
{
var10=10;
printf("Var10 before function call=%d\n",var10);
var10TestFunc2();
printf("Var10 after function call=%d\n",var10);
}
file2.c中
#include<stdio.h>
int var10;
void var10TestFunc2(void)
{
var10 = 34;
}
'定义'vs'声明' –