相关疑难解决方法(0)

将enum用作int是一个好习惯吗?

所以,我在课堂上有一个变量"state".我想将它声明为一个整数,所以我可以保存一些if语句.

int state;
Run Code Online (Sandbox Code Playgroud)

一种方法是声明枚举状态{One = 0,Two = 1,Three = 3},然后在switch语句中,它将变为:

switch (state)
{
case One:
    dosomething();
    break;
case Two:
    dosomething();
    break;
case Three:
    dosomething();
    break;
}
Run Code Online (Sandbox Code Playgroud)

那么,使用像这样的枚举是一个好习惯吗?有一个更好的方法吗?

谢谢!

c++ int enums

7
推荐指数
2
解决办法
6068
查看次数

使用enum作为类型是否可以视为C语言中的一种好习惯?

考虑以下示例:

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
Run Code Online (Sandbox Code Playgroud)

最佳做法是1、2或3,可以选择哪种选择?

事先,我的观点是,你应该总是使用类型int,因为enumsint由标准的,可以分配给任何值enum类型,如果你使用的任何其他选项,你可能有错觉,以为你不需要测试您的论点是否有效。使用int的类型enum参数,它更清晰,你应该总是确认输入参数。

我发现可能有理由在enum所有其他程序语言中都将as用作类型,但对于C而言却没有,是否有理由认为选项2或3比1更好?

结论:由于没有技术问题,因此确认这只是个人喜好是没有错的。无论如何,由于可读性,我将重新考虑我的第一个假设,并将选项#3作为稍微更好的做法。

c enums

2
推荐指数
1
解决办法
1302
查看次数

标签 统计

enums ×2

c ×1

c++ ×1

int ×1