首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么stackalloc接受可变长度?

为什么stackalloc接受可变长度?
EN

Stack Overflow用户
提问于 2016-05-14 20:34:37
回答 1查看 482关注 0票数 5

知道为什么'stackalloc‘关键字接受可变长度吗?

如果此指令返回指向堆栈帧中分配的缓冲区的指针,编译器如何管理该指针?每次调用它来组织堆栈框架时,它都会在运行时重新编译函数吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-14 21:06:40

知道为什么stackalloc关键字接受可变长度吗?

因为能够这样做是有用和可取的,因此语言设计人员选择了允许它。

如果此指令返回指向堆栈帧中分配的缓冲区的指针,编译器如何管理该指针?每次调用它来组织堆栈框架时,它都会在运行时重新编译函数吗?

localalloc指令在堆栈当前帧之后分配内存,而分配只将地址存储回本地。因此:除了更新堆栈框架的末尾,这样如果我们调用另一个方法,它就不会被覆盖,所以没有必要重新计算任何东西。

(注:与往常一样,在讨论堆栈时,这实际上是一个实现细节;理论上,只要JIT尊重语义,JIT就可以自由地从任何地方分配它)

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37231575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档