从布鲁斯·埃克尔(BRUCE ECKEL)的C++ .. i阅读中读到以下文本



怀疑:我猜想它仅用于在堆栈上进行存储分配,但是我的疑问是,编译器如何知道在到达主对象(或其他fn)之前要在主对象(或其他fn)中定义了多少个对象(甚至一个对象)。储存在范围的开头括号中。

最佳答案

编译器可以在实际发出任何代码之前分析整个功能。通常,编译器会针对每个支撑段计算出需要多少存储空间,并在函数序言中添加一条汇编指令以将堆栈指针调整那么多字节。

但是,实际上,初始化变量发生在代码中的适当位置。

10-07 13:09
查看更多