程序为什么要返回一个值?

时间:2017-02-17 01:13:57

标签: c

我只想知道返回值时内部会发生什么。如果我们不返回值会产生什么后果?

#include <stdio.h>
int main() {
  printf("Hello world");
  return 0; //what is use of this?
} 

3 个答案:

答案 0 :(得分:1)

系统可以对其进行评估,以确定程序是否运行失败(以及失败的原因)

答案 1 :(得分:0)

我想也许你有两个问题:

为什么main()会返回int而不是void

这个问题有already been answered in many forms。基本上:对于调用它的程序(可能是shell,或者你的IDE),它可以区分成功和各种失败模式。

如果您忘记从main()返回值,会发生什么?

在C(C89)的第一个标准化版本中,main()在这方面没什么特别之处。如果您忘记返回值,则行为未定义。实际上,大多数编译器都会像放置return 0;一样。

从C99开始,如果你没有显式地从main()返回一个值,那么main()被定义为返回0. main()以这种方式是特殊的;其他函数不会隐式返回任何内容。

正如Weather Vane在评论中所说,你的程序不能返回一个值(在“返回值”是一个有意义的概念的平台上)。在Linux上,execve()和类似函数返回int,它是程序的返回值。如果一个程序不正常并且不打算返回一个值,那么返回值可能只是一些任意值(但是在另一个平台上这样的程序可能会崩溃)。

答案 2 :(得分:-1)

并非每个程序或函数都返回一个值。在c中,我们使用return 0来在程序运行完毕后向操作系统返回控制权,并确保程序顺利运行。 希望有所帮助。干杯