考虑以下示例:
enum my_enum
{
ENUMERATER_1,
ENUMERATER_2,
ENUMERATER_TOTAL,
}
typedef enum my_enum my_enum_t // just if using option 2
static int use_my_enum(int myenum); // 1
static int use_my_enum(my_enum_t myenum); // 2
static int use_my_enum(enum my_enum myenum); // 3
什么选项可以被认为是最佳实践,1、2 或 3?
在此之前,我的意见是您应该始终使用 type int
,按照enums
标准int
,您可以为enum
类型分配任何值,如果您使用任何其他选项,您可能会产生不需要测试的错觉你的论点是否有效。使用int
作为enum
参数的类型,更清楚的是您应该始终确认输入参数。
我发现可能有理由将enum
用作所有其他程序语言的类型,但不适用于 C,有什么理由认为选项 2 或 3 比 1 更好?
结论:由于没有技术问题,所以确认这只是个人喜好并没有错。无论如何,由于可读性,我将重新考虑我的第一个假设并将选项#3 作为更好的做法。