【发布时间】:2015-06-30 11:22:11
【问题描述】:
如果我在函数中的局部变量很少 -
void fun()
{
int a,b,c,d,e,f,g;
}
编译器是否为每个变量一个接一个地分配内存?如是 为什么编译器不一次读取所有变量然后为 他们一口气?
【问题讨论】:
-
取决于编译器、优化选项等。在大多数情况下,此代码会导致单个堆栈帧指针值更新。
-
“为什么编译器不一次读取所有变量,然后一次性为它们分配内存?”。这大致是大多数编译器所做的。是什么让你觉得内存不是一次性分配的?