如果我们定义一个全局变量怎么办?
int x;
并且在函数体内定义另一个变量int x;
。
功能内部' x'总是会引用局部变量' x'。现在,如果用户必须在函数内部引用全局变量x,那么如何实现呢?
答案 0 :(得分:2)
由于您的问题标记为“C”,我将回答该语言。其他语言可能提供语法糖或机制来做你想要的。
使用更大范围内存在的变量名称定义变量称为阴影:内部定义阴影外部变量。
以下是一个例子:
int x = 42;
int main() {
int x = 0; // Here, `x` shadows the global `x`.
printf("%d\n", x); // Prints '0'
}
在C中,无法获取阴影变量的值。
在样式计划中,阴影通常被认为是一种不好的做法,因为它会使你的代码不那么易读并且难以重构。