在int main()块中编写代码块时,我们为什么要使用
返回0;
我知道这是因为它告诉操作系统代码运行成功。 但即使我使用返回1,返回38或类似的东西,如果我的程序仍然成功运行,它会如何影响我。 如果任何数字x可以使用数字0,那么它的用途是什么?
答案 0 :(得分:2)
在许多环境中,从main()
传回的返回值可以通过运行程序来访问。例如,您可以在bash
中通过执行以下操作来查看此内容($?
是保存最后一个程序的返回代码的bash
特殊变量 - 它实际上更多一点比你做管道时复杂但我们为了这个问题的目的而保持简单):
myProgram
if [[ $? -ne 0 ]] ; then
echo "Something went horribly wrong"
fi
因此,这是向外界指示您的计划成功与否的好方法"
对于我们中间的语言律师,C11
首先涵盖(5.1.2.2.3 Program termination /1
)(我的重点):
如果
main
函数的返回类型是与int
兼容的类型, ,从初始调用到main函数的返回相当于调用{{1使用exit
函数返回的值作为参数的函数; 到达终止main
函数的}
返回值0. / p>
第main
节涵盖7.22.4.4 The exit function /5
与实际完成执行有关的行为:
最后,控制权返回给主机环境。如果status的值为零或
exit
,则返回状态成功终止的实现定义形式。如果status的值为EXIT_SUCCESS
,则返回状态为不成功终止的实现定义形式。否则返回的状态是实现定义的。
答案 1 :(得分:1)
任何与零不同的值都表示程序异常结束或出现错误。对于独立程序而言,它并不重要,因为这些代码经常被忽略。但是,对于在第三方软件(OS,脚本或shell)中调用时,可以将其用于错误处理。
参考类似的问题。 So what does "return 0" actually mean?
也是对Quora问题的引用: https://www.quora.com/What-does-return-1-do-in-a-program-in-C