Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么main()在c++;不需要被调用,它会运行吗?_C++ - Fatal编程技术网

C++ 为什么main()在c++;不需要被调用,它会运行吗?

C++ 为什么main()在c++;不需要被调用,它会运行吗?,c++,C++,我有一个非常简单的问题。我刚开始C++,想知道为什么 int main() 不需要调用,它运行并打印出 cout << "hello world"; cout它是被调用的,而不是由您调用的。编译器的RTL库为您调用它。当进程开始运行时,RTL的启动代码将执行,这将根据需要设置环境(设置全局变量、解析命令行等),然后在准备就绪时调用main(),然后在main()退出且环境已清理后退出进程。它被调用,而不是由您调用。编译器的RTL库为您调用它。当流程开始运行时,RTL的启动代码将

我有一个非常简单的问题。我刚开始C++,想知道为什么

 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特定的部分。标准不允许它。