首页 > 解决方案 > 为什么 main 函数首先在 c/c++ 中运行?

问题描述

为什么 main() 函数首先运行然后其他函数如果我们希望另一个函数首先运行然后是 c 或 c++ 中的 main 函数怎么办。谁能解释它背后的逻辑。谢谢。

标签: c++c

解决方案


因为这就是标准定义要使用的语言(此处引用 C++):

[基本.start.main]

程序应包含一个名为 的全局函数main。执行一个程序会启动一个执行主线程 (...),其中调用 main 函数 (...)

main因此,编译器必须以在操作系统启动程序时调用的方式生成二进制文件,或者在独立环境的情况下,在加载程序时调用。

从技术上讲,它不必是call生成的程序集中的第一个。编译器可以插入一些额外的启动代码(如初始化变量等),这些代码本身可以组合成函数。这不是 C++ 程序开发人员关心的问题,但在嵌入式系统上变得非常重要,您需要/想要了解几乎每条执行的指令。


推荐阅读