如何在函数体内引用与本地变量同名的全局变量?

时间:2017-09-18 08:13:51

标签: c variables scope global-variables local-variables

如果我们定义一个全局变量怎么办? int x; 并且在函数体内定义另一个变量int x;

功能内部' x'总是会引用局部变量' x'。现在,如果用户必须在函数内部引用全局变量x,那么如何实现呢?

1 个答案:

答案 0 :(得分:2)

  

由于您的问题标记为“C”,我将回答该语言。其他语言可能提供语法糖或机制来做你想要的。

使用更大范围内存在的变量名称定义变量称为阴影:内部定义阴影外部变量。

以下是一个例子:

int x = 42;

int main() {
    int x = 0; // Here, `x` shadows the global `x`.
    printf("%d\n", x); // Prints '0'
}

在C中,无法获取阴影变量的值。

在样式计划中,阴影通常被认为是一种不好的做法,因为它会使你的代码不那么易读并且难以重构。