编写返回表示状态代码的 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/