我有一个枚举:
enum myenum{
typeA,
typeB,
typeC
} myenum_t;
Run Code Online (Sandbox Code Playgroud)
然后,使用enum参数调用函数:
int myfunction(myenum_t param1)
{
switch(param1)
{
case typeA:
case typeB:
case typeC:
//do the work
break;
default:
printf("Invalid parameter");
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但是,随着myenum_t越来越多的价值观的增长,myfunction似乎并不那么优雅.
有没有更好的方法来检查枚举是否有效?
我有一个使用typedef枚举的自定义对象.如果我为我的对象设置了一些枚举选项,我该如何检查它们是否被使用?
typedef enum {
Option1,
Option2,
Option3
} Options;
Run Code Online (Sandbox Code Playgroud)
在创建我的对象时,我可能会使用:
myobject.options = Option1 | Option2;
Run Code Online (Sandbox Code Playgroud)
我怎样才能稍后检查哪些枚举选项被设置?如:
if (myobject.options == Option1) {
// Do something
}
if (myobject.options == Option2) {
// Do something
}
Run Code Online (Sandbox Code Playgroud)