【发布时间】:2014-06-04 21:39:07
【问题描述】:
我注意到许多函数采用参数或“标志”,如下所示:
foo(BIG | RED | SWEET);
其中BIG、RED 和SWEET 在文件的前面已经被#define'ed,例如:
#define BIG 0x1
我想实现我自己的函数,它采用上述参数,但我担心 ORing 两个数字一起可能等于 ORing 两个不同数字的相同结果。什么是定义这些变量以防止冲突的正确方法?
【问题讨论】:
-
这些是按位或。所以变量通常是 0 和 2 的幂。0, 1, 2, 4...