注意:作为一般的建议,请尽量不要以这种方式编写新的代码(我理解维护部分)。它既难以管理又难以阅读。
我有以下嵌套函数:
int main()
{
int a, b, c;
a = 10;
int foo()
{
int a, b, c;
//some more code here
}
// some more code here
}
现在,我需要分配属于foo()
的变量a
,以及属于main()
的变量a
的值。基本上,像foo.a = main.a
这样的东西是我正在寻找的。
有办法做这种作业吗?我通读了这里和这里的作用域规则,但没有找到任何可以在这种情况下使用的规则。
我知道使用嵌套函数是不可取的,但是我正在处理预先存在的代码,并且我没有权限改变代码的结构。
我该如何继续?
将嵌套函数部分分开,AFAIK, C
没有提供任何直接方法来访问阴影变量。
主要建议:不要使用这种方法。始终为内部作用域使用单独的变量名,并将-Wshadow
提供给gcc
,以检测和避免可能的遮蔽。
- 声明一个指针,给它赋外部变量的地址。 声明并定义局部变量。
- 同时使用。
注意:作为一般的建议,请尽量不要以这种方式编写新的代码(我理解维护部分)。它既难以管理又难以阅读。