我见过其他人以前使用位或来组合标志:
#define RUN 0x01
#define JUMP 0x02
#define SHOOT 0x04
const byte madPerson = RUN | JUMP | SHOOT;
我也是这么做的。
但是我也看到了使用加法的一些(不是很多)组合标志:
#define RUN 0x01
#define JUMP 0x02
#define SHOOT 0x04
const byte madPerson = RUN + JUMP + SHOOT;
哪一个更“可读”?(您认为更多人会认出哪个?)这样做的“标准”方法是什么?你更倾向哪个?
@Job:不是StackOverflow问题,因为它询问的是可读性,可识别性,首选项和最佳实践。没有一个客观的答案。它属于这里。
—
Macneil 2010年
1<<0
,1<<1
,1<<2
,等等。当您有许多标志时,它变得更易读,更可维护且不易出错。例如,如果您要打包一个64位int的所有64位,那么您真的想避免输入错误:)表示1
方式也很重要。对于VS2010中的64位整数,我认为它是1UI64
或类似的东西。使用错误的类型可能会咬你。