这很难用文字解释,所以我举个例子。
//f1.c
int a = 5;
int main()
{
printf("func2() output is: %i\n", func2() );
return 0;
}
//f2.c
static int a = 3
int func2()
{
extern int a;
return a;
}
当我编译并运行它时,我得到 3,而我期待 5。谁能向我解释为什么我得到 3?我会认为通过在函数中使用 extern,它不会使用静态变量的值。