gpt4 book ai didi

c - 编译c程序时代码段、数据段或创建时间?

转载 作者:太空宇宙 更新时间:2023-11-04 01:31:03 24 4
gpt4 key购买 nike

我想了解 C 程序的编译过程。预处理后的程序交给编译器(创建obj文件)。编译器将检查编译错误。但是我在某个地方读到那个代码段,数据段将由编译器创建并将相应的条目放入这些段中。这是正确的吗?

编译器将如何在内存中创建段?由于我们还没有开始运行程序。谁能告诉我编译器执行的具体操作是什么?

最佳答案

正如您所提到的,文本和数据段(从技术上讲是 BSS)由编译器生成。文本包含程序代码,数据包含全局和静态数据。这些都是磁盘上二进制镜像的一部分。

栈和堆不是由编译器创建的,而是在运行时分配的——它们只在进程还活着的时候存在于内存中。

关于c - 编译c程序时代码段、数据段或创建时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22338340/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com