首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >代码、静态、堆栈和堆段实现

代码、静态、堆栈和堆段实现
EN

Stack Overflow用户
提问于 2014-06-22 11:57:01
回答 2查看 579关注 0票数 0

我知道每个片段的用途,但我想知道是谁用c或c++这样的语言实现它们呢?

它们是由c/c++编译器程序员在编写语言实现时编写的吗?或者这些段是在OS /硬件级别实现的(可能是当OS为程序选择一个地址空间时)?

我把堆栈框架想象成一个简单的c++结构,它被推入堆栈中,用于每个函数调用。我把堆想象成一个动态数组等等.

EN

Stack Overflow用户

发布于 2014-06-22 12:18:08

它们是由c/c++编译器程序员在编写语言实现时编写的吗?或者这些段是在OS /硬件级别实现的(可能是当OS为程序选择一个地址空间时)?

段入口点主要在工具链的链接阶段(和链接器程序)进行管理。

从这个意义上说,是的,这些是由编译器开发人员实现的。

不过,您可以提供自己的链接器脚本,您可以在其中指定应该在哪些具体内存地址中发生这些段,以及这些内存地址是否指ROM或RAM。

我把堆栈框架想象成一个简单的c++结构,它被推入堆栈中,用于每个函数调用。我把堆想象成一个动态数组等等.

恐怕没有那么简单:

  • 堆栈框架通常还需要跟踪本地实例化变量、堆栈异常展开所需的信息等。
  • 堆分配的内存需要一些基本机制来跟踪分配的内存块及其实际大小。
  • 静态内存初始化和类初始化需要运行静态实例类的构造函数。
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24350999

复制
相关文章

相似问题

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