我有一个全局变量和一个具有相同名称的局部变量.我可以将局部变量复制到全局变量(assign),而无需先将全局变量的值分配给某个临时变量(使用extern),然后将临时变量分配给全局变量吗?
我需要做这样的事情:
我需要做这样的事情:
#include<stdio.h> int myVariable = 50; void myFunction() { int myVariable; myVariable /*global*/ = myVariable /*local*/; }
在C中是否有某种方法可以做到这一点(不使用临时变量(或数组中的指针))?我发现在C,Java或C#中可以使用像这样的关键字,super,base等,但在C中找不到解决方案.
解决方法
在C99中,无法指定要使用的变量/常量的特定范围.当引用变量/常量时,它将自动引用最内部的范围.
从C99标准6.2.1.4:
… If an identifier designates two different entities in the same name space,the scopes might overlap. If so,the scope of one entity (the inner scope) will be a strict subset of the scope of the other entity (the outer scope). Within the inner scope,the identifier designates the entity declared in the inner scope; the entity declared in the outer scope is hidden (and not visible) within the inner scope …
那么我该如何解决这个问题呢?
简单,更改最内层范围变量的名称:)