C++ 正在澄清返回0和1
因此,在函数(非main)中返回0意味着错误,返回1或0以外的任何内容都意味着成功C++ 正在澄清返回0和1,c++,c,return,C++,C,Return,因此,在函数(非main)中返回0意味着错误,返回1或0以外的任何内容都意味着成功 为什么我们在main()函数中放入0,这意味着当其他函数中的1表示它成功运行时没有错误,谢谢。默认情况下返回某个数字并不意味着什么 开发人员决定方法返回的内容以及返回值的含义 main返回退出代码,0表示无错误,这是一种直截了当的方式,并且有更多可能的返回值,仅0和10和1(或任何非零数字)在发生到bool转换的上下文中转换为布尔值false和true,例如在if(此处)…中。这在您的程序中使用 来自main的返
为什么我们在main()函数中放入0,这意味着当其他函数中的1表示它成功运行时没有错误,谢谢。默认情况下返回某个数字并不意味着什么 开发人员决定方法返回的内容以及返回值的含义
main
返回退出代码,0
表示无错误,这是一种直截了当的方式,并且有更多可能的返回值,仅0
和10
和1
(或任何非零数字)在发生到bool
转换的上下文中转换为布尔值false
和true
,例如在if(
此处
)…
中。这在您的程序中使用
来自main
的返回值以不同的方式使用,返回给调用程序的shell。在shell的上下文中,值的解释是不同的。在这里,0
传统上表示“无错误”,而大于零的值表示错误,并且该值本身包含一些关于发生何种错误的提示。从man grep
中提取以下代码片段:
EXIT STATUS
The grep utility exits with one of the following values:
0 One or more lines were selected.
1 No lines were selected.
>1 An error occurred.
价值代表失败,价值代表成功,这是没有标准的。然而,传统上,C/C++/Unix选择使用0作为成功,使用非零表示失败,因为非零值可以用作错误代码来表示各种失败原因。这样想:
按照传统,没有函数会返回表示成功的布尔值。相反,返回类型是某个错误号或某个对象指针
现在,如果返回一个错误代码并且没有发生错误,那么自然不会返回错误。这是main()
返回时零的含义。因此,if(main())
的意思类似于if(error)
同样,如果返回一个对象指针,并且发生错误,则不能返回任何对象,这同样由零(=空指针)表示。因此,if(getObject())
的意思类似于if(/*getObject()实际返回了一些*/)
因此,尽管它看起来方向不对,但事实并非如此。只是没有任何东西会直接返回一个成功的布尔值。返回的值本身意味着什么,开发人员决定该值是否意味着错误
但请看一下错误代码及其处理
int MyFunctionWhichCanFail(...)
{
/*some code*/
return ERROR_CODE;
}
int FunctionWhichWorksWithFunctionWhichCanFail()
{
if (MyFunctionWhichCanFail(...))
{
//some error handling
}
//other stuff
}
在这种情况下,可能会发生许多不同的错误,因此错误代码是一个很好的选择,在可能出现结果失败/成功的情况下,最好使用bool
我还想指出,在大多数系统中,零被定义为ERROR\u SUCCESS
(或其他表示成功的关键字)。您似乎混淆了“SUCCESS Boolean”和“ERROR code”的概念。一些函数在成功时返回true
,在失败时返回false
(有时还额外设置一个全局变量,如errno
,作为某个错误号);其他(如main
)返回错误代码,0
表示“无”(即“无错误”,即“成功”)和对应于各种错误的非零数字。返回0表示false,返回1表示true的前提是。。。误入歧途剩下的问题在这之后没有多大意义。这澄清了我要问的另外一些问题,谢谢。你可以考虑使用Excel(ExtIX成功)和Excel(ExtIX失败)来避免解释中的并发症,至少从你的观点来看。正如@DanielFrey所说的,这实际上取决于接收应用程序退出代码的工具,但您对此无能为力。