在C和C ++中返回0的意义是什么?

时间:2014-01-04 10:27:52

标签: c++ c

我需要最简单的答案。我已经在各个网站上查找了答案。如果程序的输入是输出为10,命令返回0强制程序返回值0而不是10?我在Borland IDE上编写了简单的C程序而没有返回0并且它们工作正常。

5 个答案:

答案 0 :(得分:2)

没有什么可以添加到Maroun的链接。如果您想了解更多有关返回值的信息,那就是这种方式。

新手只需几句话:

int main()
{
  return 0;
}

int main()
{
  return 22;
}

void main()
{

}
如果你没有检查程序的返回值并在大多数默认设置编译器上编译,那么

的行为都会一样。

当您在命令行(windows)或shell(linux)上执行程序时,可以通过检查返回值(即您正在返回的值)来检查该程序是否成功或成功完成其任务。

顺便说一句,遵循标准是一个好习惯,因此我强烈推荐给你。

答案 1 :(得分:0)

我假设您正在讨论main()函数:如果您返回的不是0(这与完全省略return相同),则假定这是一个错误代码,可用于通知其他程序当前的程序未能按预期执行。

答案 2 :(得分:0)

主函数通常应该返回一个值,然后返回一些值就完成执行。返回0表示成功,返回非零数字表示失败。因此我们在主函数结束时“返回0”。但是你可以在没有返回0的情况下运行main函数。它的工作方式相同。资料来源: What is the proper declaration of main?

答案 3 :(得分:0)

main函数的返回码被传递回操作系统。它的作用取决于此。如果在命令行上执行程序,则可以忽略它。在脚本中,此返回码可用于确定如何继续。

如果您使用void main(),则会返回0.

以下是DOS的示例:

rem test.bat
@echo off
MainReturnValTest
@if "%ERRORLEVEL%" == "0" goto good
:fail
    echo Execution Failed
    echo return value = %ERRORLEVEL%
    goto end

:good
    echo Execution succeeded
    echo Return value = %ERRORLEVEL%
    goto end

:end

当然可以使用不同的语法在其他操作系统上完成相同的操作。例如,在Linux中,您可以使用:

myprogram && echo success

只有在返回码为0时才会打印成功。

您的计划的运作当然不受影响。

答案 4 :(得分:0)

  1. 返回值与您的输出值无关。即使您的输出 10 ,也会返回 0
  2. 每个命令都返回一个退出状态(有时称为返回状态或退出代码)。成功的命令返回 0 ,而不成功的命令返回非零值,通常可以将其解释为错误代码。成功完成后,行为良好的UNIX命令,程序和实用程序返回 0退出代码,但有一些例外。