c++ - 为什么 main 函数首先在 c/c++ 中运行?
问题描述
为什么 main() 函数首先运行然后其他函数如果我们希望另一个函数首先运行然后是 c 或 c++ 中的 main 函数怎么办。谁能解释它背后的逻辑。谢谢。
解决方案
因为这就是标准定义要使用的语言(此处引用 C++):
[基本.start.main]
程序应包含一个名为 的全局函数
main
。执行一个程序会启动一个执行主线程 (...),其中调用 main 函数 (...)
main
因此,编译器必须以在操作系统启动程序时调用的方式生成二进制文件,或者在独立环境的情况下,在加载程序时调用。
从技术上讲,它不必是call
生成的程序集中的第一个。编译器可以插入一些额外的启动代码(如初始化变量等),这些代码本身可以组合成函数。这不是 C++ 程序开发人员关心的问题,但在嵌入式系统上变得非常重要,您需要/想要了解几乎每条执行的指令。
推荐阅读
- windows - 终端中的不可见文本与纱线
- javascript - 从 javascript 中已有的数组中创建新数组
- jquery - Angular - 如何在 angular component.ts 中定义 owl carousel 回调函数?
- c++ - 模板元编程 - g++ 吃掉它,clang 不吃
- reactjs - 为什么我在安装 REACT 时收到此错误?
- php - 警告:session_destroy():试图在第 27 行销毁 D:\xampp\htdocs\PHP\MyBlog\lib\Session.php 中的未初始化会话
- reactjs - 使用酶检查反应“选择”的选定值
- java - 运行时环境与编译器 Java 问题不同?
- php - 子文件夹中的wordpress htaccess未重定向到https
- node.js - 节点:从 API 填充配置数组