gpt4 book ai didi

c - C启动例程需要什么?

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

引用其中一本 unix 编程书籍,

When a C program is executed by the kernelby, one of the exec functions calls special start-up routine. This function is called before the main function is called. The executable program file specifies this routine as the starting address for the program; this is set up by the link editor when it is invoked by the C compiler. This start-up routine takes values from the kernel the command-line arguments and the environment and sets things up so that the main function is called as shown earlier.

为什么我们需要一个中间人启动例程。 exec 函数可以直接调用 main 函数,内核可以直接将命令行参数和环境传递给 main 函数。为什么我们需要中间的启动例程?

最佳答案

因为C没有“插件”的概念。所以如果你想使用,比方说,malloc() 就必须有人初始化必要的数据结构。 C 程序员很懒,不想一直写这样的代码:

main() {
initialize_malloc();
initialize_stdio();
initialize_...();
initialize_...();
initialize_...();
initialize_...();
initialize_...();

... oh wow, can we start already? ...
}

因此 C 编译器找出需要完成的工作,生成必要的代码并设置所有内容,以便您可以立即开始您的代码。

关于c - C启动例程需要什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4595910/

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