我正在学习 CI 中的存储类有一个简单的代码
enter code here
int f1()
{
static int i=0;
i++;
printf("%d",i);
}
int f2()
{
printf("%d",i);
}
int main()
{
f1();f2();f1();f2();
}
编译器给出错误,因为 f2() 中未声明“i”。正如我所想,内存静态变量分配在程序内存的数据部分中。因此该文件中的任何函数都应该能够访问它。
编译器如何知道函数中本地声明的变量仅绑定到该函数?编译器如何评估它?