#include
int var = 7; // 全局变量var
void func1(void)
{
printf("In func1, var = %d.\n", var);
}
void func2(void)
{
int var = 5;
printf("In func1, var = %d.\n", var);
}
void func3(void)
{
int var = 5;
#ifdef __cplusplus
printf("__cplusplus defined.\n");
printf("In func1, var = %d.\n", ::var);
#endif
}
int main(void)
{
func1();
func2();
func3();
return 0;
}
/*
* gcc编译,执行结果:
* In func1, var = 7.
* In func1, var = 5.
*
* 结论:在line13中,func2中局部变量var屏蔽了全局变量var。
*
* g++编译,执行结果:
* In func1, var = 7.
* In func1, var = 5.
* __cplusplus defined.
* In func1, var = 7.
*/