c++ - C 或 C++ 返回状态

标签 c++ c function return-value status

编写返回表示状态代码的 int 的 C 或 C++ 函数的最佳实践是什么?

具体来说,我想了解客户端的使用情况,但欢迎提供其他提示。

例如,我可以这样写吗:

int foo() {
  return 0;  // because everything was cool
}

然后这样用?

if (foo()) {
  // what to do if false, e.g. non-zero, e.g. not OK
} else {
  // what to do if true, e.g. zero, e.g. OK
}

这应该可行,因为最佳实践通常规定状态代码 0 表示一切正常,并且 0 表示 bool 值中的 false声明。

但是,这样不好吧:

if (!foo()) {
  // what to do if true
} else {
  // what to do if false
}

最佳答案

我们在我工作的 C 中使用它:

int err = foo();
if (err) {
    // armageddon
}

赋值和 if 可以组合,但是随着更复杂的函数调用,它变得更加困惑,有些人对条件赋值感到困惑(gcc 讨厌它)。

对于 C++,如果可用的话,我更喜欢异常,否则就是上面的。

编辑: 我建议在成功时返回 0,在出错时返回任何其他内容。这就是 unix 命令行实用程序所做的。

关于c++ - C 或 C++ 返回状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7450311/

相关文章:

c++ - 如何将 cin 读入 vector

c++ - Windows下C++项目中使用cpp-netlib

c - %[^\n] 转换说明符与结构不兼容吗?

C:如何将结构添加到指针数组

c - 根据 C89 标准,字符串文字的修改是否未定义行为?

javascript - Nodejs 中的 function in function 到底做了什么?

function - Godot和GDScript可以将函数存储在变量中吗?

c++ - 创建一个自定义的lightdm迎宾器

c++ - C++多重定义的解决方法

c++ - 在 C++ 中传递数组引用