堆栈动态和堆栈动态数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了堆栈动态和堆栈动态数组相关的知识,希望对你有一定的参考价值。
C / C ++编译器如何处理固定堆栈动态和堆栈动态数组。通过查看汇编代码中这些变量的地址,我看到了静态变量与堆栈动态变量的不同之处。
答案
如在C ++标准中的备注堆栈动态数组中所述。
当没有本地/堆栈动态数组时,堆栈中每个局部变量的位置是与当前函数关联的帧中的常量偏移量
当在局部变量中引入动态数组时,编译器必须考虑用于数组的大小来访问放置在数组之后的局部变量,以便在没有它的情况下将其添加到常量偏移处。为此,我们可以很容易地想象元素的大小/数量也放置在数组之前的堆栈中,允许生成的代码读取它以进行偏移计算。很明显,动态阵列会对性能产生影响
以上是关于堆栈动态和堆栈动态数组的主要内容,如果未能解决你的问题,请参考以下文章