常规结果和代码错误C ++ int foo(...)

时间:2009-12-10 16:08:50

标签: c++ rules boolean

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

当int(或bool)等于1时我们说这是真的,但是在C ++中返回这样的函数应该是什么?

5 个答案:

答案 0 :(得分:5)

在C ++中,通常使用布尔返回表示成功为true,失败表示false。

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

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

答案 1 :(得分:3)

在C及其运行时库中,0表示成功(有时需要轮询errno)。

在C ++世界中,世界变得更加丰富多彩:

  • bool for success / failure
  • 枚举是否有更多州
  • 例外情况......特殊情况和对象构建/破坏;有时它们不可用或不被允许(主要是嵌入式平台,有时候游戏可以最大化性能)

不要混淆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 ++函数或方法可以返回booltrue之类的false值。程序(即main函数)必须返回int值,例如0以报告“成功”。

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

我理解你要问两个问题:

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

基本答案如下。

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

如果某个功能成功或失败,通常会输入 bool 并返回 true false

如果函数可以返回多个值,通常会返回 int 枚举值。

尝试为那些例外的案件抛出异常。