2

例如,在 Linux 中,当我使用批处理时,如果错误代码为 0,那很好,但是 C++ 中的约定是什么?

当 int(或 bool)等于 1 时,我们说这是真的,但是 C++ 中这样的函数的返回值是多少?

4

5 回答 5

6

在 C++ 中,通常使用 boolean return 来表示 true 表示成功,false 表示失败。

使用整数返回值也很常见,其中零表示成功,非零表示失败或任何其他情况(通常负数表示错误,而正数表示其他结果)。

无论您选择哪种方法,重要的是对其进行记录并在整个代码库中保持一致。

于 2009-12-10T16:15:55.623 回答
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(..)) ...
于 2009-12-10T16:41:08.427 回答
0

返回整数的标准 C 函数通常返回大于或等于 0 表示成功,返回 -1 表示失败。当返回 -1 时,errno通常设置为提供更具体的错误。零表示一般成功,其中大于零的数字被假定为成功并提供更多详细信息。

考虑类似的东西recvfrom()。返回值 -1 表示完全失败并errno设置为详细代码。返回值为零意味着套接字以有序的方式关闭,并且额外的调用不会返回数据。返回值大于零表示接收到数据,接收到的字节数就是返回的内容。

于 2009-12-10T16:20:25.880 回答
0

我理解你要问两个问题:

  • 你如何在c ++中返回程序状态
  • 函数如何在c ++中返回状态

基本答案如下。

通常程序 (main()) 返回 0 表示成功,其他值 - 错误 - 表示失败

如果一个函数可以成功或失败,它通常被键入为bool并返回truefalse

如果一个函数可以返回多个值,它通常会返回intenum值。

尝试为那些异常的情况抛出异常。

于 2009-12-10T16:48:48.880 回答
0

C++ 函数或方法可以返回bool类似true或的值false。程序(即main函数)必须返回一个int值,例如0报告“成功”。

于 2009-12-10T16:12:17.693 回答