二进制标志位
一个 int 类型具有32位,所以至少可以保存31个标志位。
添加、清除标志位宏
#ifndef ClearFlag
#define ClearFlag(_F,_SF) ((_F) &= ~(_SF))
#endif
#ifndef SetMaskFlag
#define SetMaskFlag(_F,_SF) ((_F) |= (_SF))
#endif
##例子
static const int MASK_FLAG_1 = 0x1;
static const int MASK_FLAG_2 = 0x2;
static const int MASK_FLAG_3 = 0x4;
static const int MASK_FLAG_4 = 0x8;
static const int MASK_FLAG_5 = 0x10;
static const int MASK_FLAG_6 = 0x20;
int iFlag = 0;
//添加标志位
SetMaskFlag(iFlag, MASK_FLAG_1);
//清除标志位
ClearFlag(iFlag, MASK_FLAG_2);