gpt4 book ai didi

编译过程和变量地址

转载 作者:行者123 更新时间:2023-11-30 14:47:35 26 4
gpt4 key购买 nike

我在技术面试中被问过这个问题“c中的编译过程是怎样的?”

我回答:

  1. 预处理器
  2. 编译器
  3. 汇编器
  4. 链接器

然后他继续

“在这些编译过程之一之后,程序中的所有变量都被定位并具有地址....如果有 2 个变量 A 和 B .... 之后进程 A 和 B 将进行在内存中有地址”

(我认为他的意思是每个进程后生成哪个文件)

我最后回答说它是在链接器之后,因为需要定义外部值,但我不知道我说的是对还是错。

所以希望有人可以帮助我理解这个问题

最佳答案

我只是想对 user3386109 评论添加一些说明:

  1. 如果是裸机编译器,则分配最终地址在链接时。
  2. 如果程序要在操作系统(linux、windows、RT-linux 等)上运行,链接器会分配一个可重定位地址,并在程序加载时给出确定的地址。但我不认为加载真的被认为是编译过程的一部分,我宁愿说它是程序初始化过程的一部分。

希望有帮助。

关于编译过程和变量地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51106213/

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