【发布时间】:2021-11-19 09:46:22
【问题描述】:
对于代码的可读性和代码的进一步文档,哪个更好?像这样定义返回值和返回函数?
#define RETURN_OK 0
#define RETURN_NOT_OK -1
int do_it(void)
{
/*...*/
return RETURN_OK;
}
或创建单独的枚举?
typedef enum
{
RETURN_NOT_OK = -1,
RETURN_OK = 0
} RET_VAL;
RET_VAL do_it(void)
{
/*...*/
return RETURN_OK;
}
【问题讨论】:
-
这是非常值得商榷和基于意见的,这不是这里的主题,但通常更具体的事情(后者)总是更好。
-
如果
enum不够长,我通常更喜欢#define样式。所以,对于这个特定的例子,我更喜欢#define版本。此外,RET_VAL的名称也很尴尬。话虽如此,这些类型的事情都是主观的。选择你自己的风格。 -
我喜欢枚举,因为调试器将数值转换为符号,这使得调试更容易
-
@cornuz 谁告诉你的? godbolt.org/z/Ghaq8b6G3
-
@cornuz 然后删除误导性评论
标签: c readability