gpt4 book ai didi

c - C 运行时的功能和包含的内容

转载 作者:太空狗 更新时间:2023-10-29 15:24:12 24 4
gpt4 key购买 nike

所以我一直在试图理解 C 运行时到底是什么,并且在构建我自己的内核时不得不深入研究。

据我了解,您不需要 C 运行时来构建每个 C 程序(就像内核一样)。此外,运行时提供了 C 程序和内核之间的接口(interface)。这是我的问题:

  • 那么运行时到底做了什么?

  • 它是充当这个接口(interface)(这样如果我们自己实现它,就不需要运行时),还是它还有其他一些功能?

  • 编译程序时运行时是否链接任何文件?

  • printfscanf 等常用函数是运行时或 C 库的一部分吗?运行时会提供什么样的功能?

编辑:我提到了What is the C runtime library? ,但它没有回答我的问题。那里没有解决我所问的问题。

最佳答案

我将从不同的角度回答这个问题,即没有操作系统的裸机嵌入式系统。在这种情况下,c 运行时执行两个重要功能:

  1. 未初始化的静态变量被赋予零值(bss 部分)

  2. 显式初始化的静态变量获取它们的初始值

这些是 C 运行时的最低职责,尽管可能还有其他与处理器相关的初始化函数。执行完这些任务后,运行时就分支到 main 函数。我没有检查 crt1.o 是否初始化了变量,但我假设它确实如此...我的 C 运行时只是一个简短的汇编程序。

关于c - C 运行时的功能和包含的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23427066/

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