vc中的静态变量

时间:2011-12-08 13:09:16

标签: c static visual-c++

  

可能重复:
  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

两者都没问题。

1 个答案:

答案 0 :(得分:-1)

尝试

#ifdef TRUE 
static int a = 1;  
#else  
static int a = 1;  
#endif