让我们说我的项目中只有一个名为test.c的文件;如果我没有定义“TRUE”,下面的代码不能编译。我只是想了解这种行为。请在这方面提出一些看法。static extern vs extern static
#ifdef TRUE
static int a;
extern int a;
#else
extern int a;
static int a;
#endif
int main (void)
{
a =10;
printf("%d", a);
return 0;
}
当事情不能编译,它的发布错误消息是一个好主意。 – Jon
在GCC上,当'TRUE'被定义时它编译得很好,但如果不是的话则不会。 –
我猜想GCC可能在解析'static'后忽略'extern'声明。 –