gpt4 book ai didi

c++ - what 's the difference between application' s 输入点地址和可执行起始地址

转载 作者:搜寻专家 更新时间:2023-10-31 01:09:34 24 4
gpt4 key购买 nike

最近比较关注编译源码的进度,看书的时候遇到两个专业的词:enter point address和executeable start address。我只知道enter point address是0x0,但不知道它们之间的区别。

最佳答案

术语很模糊,但我想我知道你在说什么。语言需要运行时支持。 C 和 C++ 语言的标准是 CRT。 CRT 需要在程序开始运行之前进行初始化。打开标准输出和标准输入、初始化静态对象、设置信号等等。

完成的两种基本方法,编译器可以在程序的 main() 入口点注入(inject)对初始化代码的调用。在 main() 中的其余代码之前。对于没有花哨的加载程序的简单操作系统来说,这是典型的。入口点和可执行文件的起始地址相同。这也是语言标准禁止递归 main() 的原因。

或者也可以通过将可执行文件的起始地址设置为运行时初始化函数来完成。然后在初始化之后依次调用程序的入口点。在 Linux 和 Windows 等高级操作系统上很常见。

关于c++ - what 's the difference between application' s 输入点地址和可执行起始地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16908823/

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