我如何在C中访问隐藏变量

时间:2011-09-20 20:28:08

标签: c scope

  

可能重复:
  How can I access a shadowed global variable in C?

在C ++中,我可以使用::运算符来指定全局变量。例如:

using namespace std;
int foo = 10;
int main(){
     int foo = 5;
     cout<<" Global variable: "<< ::foo <<endl;
     cout<<" Local Variable: " << foo <<endl;
     return 0;
}

我怎样才能在C中做到这一点?

1 个答案:

答案 0 :(得分:8)

这是an earlier question的主题。它可以实现如下

int foo = 10;
int main(void) {
     int foo = 5;
     {
         extern int foo;
         foo++;
     }
     foo++
     return 0;
}

然而在实践中,我无法想象遇到这个问题,因为我总是可以重命名局部变量或者创建一个小static inline函数来访问全局foo并且我可以调用它