在C应该返回0打印任何东西到控制台?

时间:2015-01-03 01:41:36

标签: c

这是我的代码:

#include <stdio.h>

int main(void)
{
    printf("Hello World!\n");
    return 0;
}

当我在Xcode中运行时,我在底部看到“程序以退出代码:0结束”,但是当我在终端中键入“./a.out”来运行程序时,它会打印出“Hello World! “正如所料,但没有别的。

我希望有一些东西可以参考0返回。如果返回0是让我知道程序正确退出,我是不是应该看到有关正在重新调整的0的内容,如果它正确退出?除非返回不打印任何东西,那么在那种情况下我怎么知道返回了什么?如果我看不到它打印到控制台。

4 个答案:

答案 0 :(得分:4)

Xcode总是返回程序的退出代码,出于调试目的,不会为main()打印返回。

答案 1 :(得分:2)

程序的终止状态由托管环境以特定于平台的方式处理,即以其认为合适的任何方式处理。开发环境通常会显示程序的终止状态。常规终端默认不这样做。

因此,请停止期望打印任何内容以响应返回的0。它不应该打印。你不应该&#34;知道&#34;返回的是什么,除非你采取特别的审慎步骤来找出答案。

在大多数情况下,终止状态将被安静地处理,这意味着大多数情况下您不会打印它。您将在执行环境中对其进行分析,并根据该分析的结果做出进一步的决策。但是,如果您希望托管执行环境打印它,您可以通过* nix终端中的echo $?或Windows中的echo %ERRORLEVEL%明确地询问它。

答案 2 :(得分:1)

main()的返回值是程序的退出代码,不打算打印。

Xcode报告程序的退出代码。

如果您想在控制台上打印,请执行

./a.out
echo $?

如果您想通知程序调用者出错的地方,那么您可以return SOME_ERROR_CODE; main()它等同于exit(SOME_ERROR_CODE);但它更干净return来自main()的错误代码。

Xcode会告诉您程序的exit代码,如果您需要知道程序退出的原因,那么有意义的exit代码值会有所帮助。

在控制台中$?是一个特殊变量,其中存储了最后一个命令的退出代码,在sh脚本中,您会发现$?的检查通常是正确的执行命令后。

答案 3 :(得分:1)

返回0不会打印任何内容。出于调试目的,您编写的程序会在程序完成执行时通知您