C++ 为什么main()在c++;不需要被调用,它会运行吗?
我有一个非常简单的问题。我刚开始C++,想知道为什么C++ 为什么main()在c++;不需要被调用,它会运行吗?,c++,C++,我有一个非常简单的问题。我刚开始C++,想知道为什么 int main() 不需要调用,它运行并打印出 cout << "hello world"; cout它是被调用的,而不是由您调用的。编译器的RTL库为您调用它。当进程开始运行时,RTL的启动代码将执行,这将根据需要设置环境(设置全局变量、解析命令行等),然后在准备就绪时调用main(),然后在main()退出且环境已清理后退出进程。它被调用,而不是由您调用。编译器的RTL库为您调用它。当流程开始运行时,RTL的启动代码将
int main()
不需要调用,它运行并打印出
cout << "hello world";
cout它是被调用的,而不是由您调用的。编译器的RTL库为您调用它。当进程开始运行时,RTL的启动代码将执行,这将根据需要设置环境(设置全局变量、解析命令行等),然后在准备就绪时调用main()
,然后在main()
退出且环境已清理后退出进程。它被调用,而不是由您调用。编译器的RTL库为您调用它。当流程开始运行时,RTL的启动代码将执行,这将根据需要设置环境(设置全局变量、解析命令行等),然后在准备就绪时调用main()
,然后在main()之后退出流程
退出,环境已被清理。如果启动一个程序,当前进程(如console/bash)正在分叉(即创建一个新进程,它是PID旁边自身的精确副本),然后新进程(复制的进程)通过调用main()函数调用您的程序。如果启动当前进程的程序(例如console/bash)正在分叉(即创建一个新进程,它是PID旁边自身的精确副本),然后新的(复制的进程通过调用main()调用您的程序)函数<代码>主< /代码>是操作系统调用启动程序的函数。如果没有<代码>主<代码>,你认为你的程序将从哪里开始?@ Jay No,它不能返回<代码>空洞< /代码>。@杰伊,这是加标签的C++,我不知道是什么。“Jay No,它不能。去搜索它。”“它使用一些过度许可的编译器设置进行编译”和“它运行但具有未定义的行为”并不意味着“它是允许的”,smart ack。)“MikeD,是的,在微软特定的部分。标准不允许。<代码>主<代码>是操作系统启动程序的函数。如果没有<代码>主<代码>,你认为你的程序将从哪里开始?@ Jay No,它不能返回<代码>空洞< /代码>。@杰伊,这是标记C++,我不知道是什么。Jay No,它不能。去搜索它,所以…(“它使用一些过度许可的编译器设置进行编译”和“它运行但有未定义的行为”并不意味着“它是允许的”,smart ack。)@MikeD,是的,在Microsoft特定的部分。标准不允许它。