Vis*_*ire 5 c global-variables
代码:
int a = 33;
int main()
{
int a = 40; // local variables always win when there is a conflict between local and global.
// Here how can i access global variable 'a' having value '33'.
}
Run Code Online (Sandbox Code Playgroud)
如果你问:为什么有人想做上面的事情?为什么[a-zA-Z]*?
我的回答是:只知道"有可能这样做".
谢谢.
cni*_*tar 13
这个老把戏怎么样:
int main()
{
int a = 40; // local variables always win when there is a conflict between local and global.
{
extern int a;
printf("%d\n", a);
}
}
Run Code Online (Sandbox Code Playgroud)
int a = 33;
int main()
{
int a = 40;
int b;
{
extern int a;
b = a;
}
/* now b contains the value of the global a */
}
Run Code Online (Sandbox Code Playgroud)
一个更难的问题是a如果它static与文件范围有关,但这也是可解决的:
static int a = 33;
static int *get_a() { return &a; }
int main()
{
int a = 40;
int b = *get_a();
/* now b contains the value of the global a */
}
Run Code Online (Sandbox Code Playgroud)