int main(void)
{
int a = 1;
int b = 2;
void f(void)
{
a = b;
b = a;
printf("a:%d, b:%d\n",a,b);
}
f();
return 0;
}
上面的代码中, main函数中嵌套了 f 函数的定义,这种做法是不支持的,因为作用域是在编译期间确定的,而不是在运行期间。f 函数所在父作用域是全局环境而不是main函数,不能访问到main中的所有变量,应该理解为 f 函数和main函数是两个完全独立的环境,能够相互的调用但是不能直接访问对方的变量;