Nea*_*len 11 c stack memory-management
我对以下C代码有疑问:
void my_function()
{
int i1;
int j1;
// Do something...
if (check_something())
{
int i2;
int j2;
// Do something else...
}
// Do some more stuff...
}
Run Code Online (Sandbox Code Playgroud)
是否有关于何时为i2和j2分配/解除分配堆栈空间或是否依赖于编译器的保证?我希望当i2和j2进入范围时调整堆栈指针,并在它们超出范围时进行调整,但后来认为某些编译器可能只是"优化"整个事物并在嵌套范围内考虑变量.首先输入该功能.
我知道我可以查看我的编译器生成的汇编代码,但是想知道实现是否可以留给编译器.
谢谢!