在Linux中,例如当我使用批处理时,如果错误代码为0,这很好,但C ++中的约定是什么?
当int(或bool)等于1时我们说这是真的,但是在C ++中返回这样的函数应该是什么?
答案 0 :(得分:5)
在C ++中,通常使用布尔返回表示成功为true,失败表示false。
通常使用整数返回值,其中零表示成功,非零表示失败或任何其他条件(通常负数表示错误,而正数表示其他结果)。
无论您选择哪种方法,重要的是记录它并在整个代码库中保持一致。
答案 1 :(得分:3)
在C及其运行时库中,0表示成功(有时需要轮询errno)。
在C ++世界中,世界变得更加丰富多彩:
不要混淆bool使用惯例和“0”,结果只是简单的混淆代码(参见示例)。如果您碰巧需要多个值,请根据情况使用枚举,附加返回参数或异常。
引入了bool和'0'代码混淆:
// sorry for abuse of "C" for educational purposes
bool isSame(s1,s2) { return s1==s2; }
int isSame2(s1, s2) { return strcmp(s1.cstr(), s2.cstr()); }
if (isSame(..) && !isSame2(..)) ...
答案 2 :(得分:0)
C ++函数或方法可以返回bool
或true
之类的false
值。程序(即main
函数)必须返回int
值,例如0
以报告“成功”。
答案 3 :(得分:0)
返回整数的标准C函数通常返回大于或等于零表示成功,返回-1表示失败。返回-1时,errno
通常设置为提供更具体的错误。零表示通用成功,其中假设大于零的数字成功并提供其他详细信息。
考虑类似recvfrom()
的内容。返回值-1表示将errno
设置为详细代码时彻底失败。返回值为零表示套接字以有序方式关闭,并且其他调用不会返回数据。返回值大于零意味着接收到数据并且接收的字节数是返回的值。
答案 4 :(得分:0)
我理解你要问两个问题:
基本答案如下。
通常,程序(main())返回0表示成功,其他值 - 错误 - 表示失败
如果某个功能成功或失败,通常会输入 bool 并返回 true 或 false 。
如果函数可以返回多个值,通常会返回 int 或枚举值。
尝试为那些例外的案件抛出异常。