可能重复:
Understanding static variables declaration/initialization in C
我的项目中只有一个名为test.c的文件;如果我没有定义“TRUE”,下面的代码就不会编译。我使用vc,错误是:'a'重定义,不同的存储类。我只是想了解这种行为。请在这方面说清楚。
#ifdef TRUE
static int a;
static int a = 1;
#else
static int a = 1;
static int a;
#endif
int main (void)
{
printf("%d\n", a);
return 0;
}
当我省略'静态'时:
#ifdef TRUE
int a;
int a = 1;
#else
int a = 1;
int a;
#endif
两者都没问题。
答案 0 :(得分:-1)
尝试
#ifdef TRUE
static int a = 1;
#else
static int a = 1;
#endif