- 枚举值是一个整型,一般使用会像下面这样子定义:
typedef enum
{
TestA = 0,
TestB,
TestC,
TestD
}Test;
- 还有一种常见方式是:
typedef enum
{
TestA = 1 << 0,
TestB = 1 << 1,
TestC = 1 << 2,
TestD = 1 << 3
}Test;
- 用位移表示有什么好处呢?
位运算的计算方式是将二进制转换成十进制,通过上面的位运算方式设定好枚举以后,打印出来的枚举值分别是: 1 2 4 8。这几个数字,无论你如何组合在一起,也不会产生两个同样的数字。当枚举属性同时符合几种值的时候,就能直接判断它们的和了。