编码范式 : Should I Return 0 if Function is Successful?

标签 c paradigms

<分区>

当我编写用户定义函数时,如果函数成功,我应该返回 0 还是非空值?

如果我的函数成功,我个人喜欢返回 0,但我总是看到错误处理更像 (!var) 而不是 (var != NULL) .那么,即使在非 bool 情况下,返回一些值(如 1)是否更好?

Stack Overflow 有什么建议?

我问的原因是因为我为 WINAPI BOOL CreateProcessW 编写了一个非 bool 包装器,它丢弃了我的代码,因为我在包装器中返回 0在我检查 TRUE 之前。

最佳答案

我发现成功时返回非零值更容易,因为这样你就可以这样说:

int result = foo()
if (!result) { .. }

这在意图上更加清晰。通常在异常或错误情况下返回 NULL,因此在成功时返回 NULL 是违反直觉的。

但是,更好的解决方案是对所有错误代码使用枚举并对照这些代码进行检查,而不是使用类似 !result 的东西。当有多个错误代码时,这也可以让您很好地处理这种情况。

关于编码范式 : Should I Return 0 if Function is Successful?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11090129/

相关文章:

c - 数据包中的字符串搜索并打印数据包数据

c++ - 用 C++ 或 C 绘制 igraph 数据?

go - 使用统一建模语言图编程 Go

programming-languages - 有没有面向上下文的编程语言,它们有什么用?

c - 这是什么意思? C编程无条件

c - 数组和函数指针

programming-languages - 什么是最美丽的编程语言? (您认为)

functional-programming - 这可以被认为是一个纯函数(函数式编程)吗?

model-view-controller - MVC 的好例子?

c - 链表元素不见了?