【发布时间】:2013-06-30 01:04:52
【问题描述】:
在 C++ 程序执行期间,特定函数的堆栈帧是否始终具有恒定大小,或者编译器在某些情况下是否允许进行动态堆栈管理,类似于 alloca() 函数所做的事情?为了更好地描述它,我的意思是堆栈帧中特定局部变量或对象的偏移量可能会在函数的不同执行时发生变化
【问题讨论】:
-
单独的作用域可能会由于析构函数的过早调用而改变当前的堆栈布局..
-
允许编译器使用寄存器来表示变量;不需要堆栈帧。在使用寄存器的情况下,栈帧的大小为零。
标签: c++ function size callstack