可能的重复:
在 C 语言中,大括号充当堆栈框架吗? https://stackoverflow.com/questions/2759371/in-c-do-braces-act-as-a-stack-frame
int main()
{
int i=10;
{
int i=100;
printf("%d", i);
}
}
内部的“{”和“}”会创建一个新的栈帧吗?
这完全取决于实现,但对于现有的实现来说,答案是否定的。他们俩i
变量通常由同一堆栈帧中的两个单独的变量实现,尽管在这种特殊情况下,第一个变量i
可能会被完全省略。
仅当您调用子例程时才需要创建堆栈帧(在 i386 上)(即使它仅用于返回地址)。在你的情况下不会发生这种情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)