我有一个函数可以告诉我资源是否存在。该函数是否应该返回0 on,1表示不存在,-1表示错误,或者它应该返回0表示存在而-1表示不存在/错误?
博多
答案 0 :(得分:6)
如果函数被设计为布尔值,如is_file_present()
之类的名称所示,它应该在资源存在时返回1,以便它可以在测试中使用,例如:
if (is_file_present(...))
... open file ...
if (!is_file_present(...))
... print an error ...
另一方面,如果函数的真实目的是它的副作用,并且其结果用于指示它们的成功,则可以为无错误情况返回0,并且在错误代码(例如-1)时返回0。有一个错误。例如:
if (create_resource(...) == 0)
... resource has been created ...
else
... handle error ...
对错误代码使用-1允许对返回项目数或索引的函数使用相同的错误约定。
答案 1 :(得分:0)
答案 2 :(得分:0)
如果您的编译器不是很古老而且您可以使用C99标准,那么您可以使用标头stdbool.h
并在资源存在时返回true
,如果资源不存在则返回false
存在。那是更清洁恕我直言。