例如,在 Linux 中,当我使用批处理时,如果错误代码为 0,那很好,但是 C++ 中的约定是什么?
当 int(或 bool)等于 1 时,我们说这是真的,但是 C++ 中这样的函数的返回值是多少?
在 C++ 中,通常使用 boolean return 来表示 true 表示成功,false 表示失败。
使用整数返回值也很常见,其中零表示成功,非零表示失败或任何其他情况(通常负数表示错误,而正数表示其他结果)。
无论您选择哪种方法,重要的是对其进行记录并在整个代码库中保持一致。
在 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(..)) ...
返回整数的标准 C 函数通常返回大于或等于 0 表示成功,返回 -1 表示失败。当返回 -1 时,errno
通常设置为提供更具体的错误。零表示一般成功,其中大于零的数字被假定为成功并提供更多详细信息。
考虑类似的东西recvfrom()
。返回值 -1 表示完全失败并errno
设置为详细代码。返回值为零意味着套接字以有序的方式关闭,并且额外的调用不会返回数据。返回值大于零表示接收到数据,接收到的字节数就是返回的内容。
我理解你要问两个问题:
基本答案如下。
通常程序 (main()) 返回 0 表示成功,其他值 - 错误 - 表示失败
如果一个函数可以成功或失败,它通常被键入为bool并返回true或false。
如果一个函数可以返回多个值,它通常会返回int或enum值。
尝试为那些异常的情况抛出异常。
C++ 函数或方法可以返回bool
类似true
或的值false
。程序(即main
函数)必须返回一个int
值,例如0
报告“成功”。