我有一个使用 typedef 枚举的自定义对象。如果我为对象设置了一些枚举选项,如何检查这些选项是否正在使用?
typedef enum {
Option1,
Option2,
Option3
} Options;
创建对象时我可能会使用:
myobject.options = Option1 | Option2;
我稍后如何检查设置了哪些枚举选项?例如:
if (myobject.options == Option1) {
// Do something
}
if (myobject.options == Option2) {
// Do something
}
如果您想对选项参数执行按位逻辑,那么您应该定义枚举,以便每个选项仅设置一个位:
typedef enum {
Option1 = 1, // 00000001
Option2 = 1 << 1, // 00000010
Option3 = 1 << 2 // 00000100
} Options;
然后使用按位 OR 运算符设置选项:
myObject.options = Option1 | Option2;
并使用按位 AND 运算符检查已设置哪些选项:
if(myObject.options & Option1) {
// Do something
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)