为什么在C++中需要使用`int main`而不是`void main`?

21 浏览
0 Comments

为什么在C++中需要使用`int main`而不是`void main`?

这个问题已经有答案了:

C和C++中main()函数应该返回什么?

为什么在C++中我们需要使用int main而不是void main

admin 更改状态以发布 2023年5月24日
0
0 Comments

大多数操作系统会向用户或调用进程返回一个应用程序是否成功的信息。特别是在脚本编写中,当程序运行的结果满足条件时,脚本可以有条件地执行分支操作(if-then)。例如:

// pseudo-code
screenscrape  http://mydatasource.com > results.txt
if errorlevel == 0 then
   processfile results.txt
else
   echo Screen Scraping Failed!
end if

这个结果状态是通过 main 函数的返回值来实现的。

虽然有些编译器允许使用 void main,但为了保持一致性和简单性,ANSI标准要求 main 函数只有一种原型:

int main(int argc, char *argv[]);

在 C 语言中,参数由调用者清理,因此 main 函数的作者可以不声明或处理参数 argc 和 argv。然而,如果调用 main 的设置和清理例程需要一个 int 返回值,而实际上没有找到,行为可能会是未定义的。

简短的回答:

  • main 函数的返回值对于脚本编写很有用。
  • 调用 main 的设置和清理例程需要一个一致的接口来使用。
0
0 Comments

简单的回答是,因为C++标准要求main()返回int

正如您可能知道的那样,main()函数返回的返回值被运行时库用作进程的退出代码。Unix和Win32都支持在进程完成后返回一个(小的)整数的概念。从main()返回一个值是程序员指定这个值的一种方法。

0