按位运算符的许多可能用法中的仅另一种...
按位运算符还可以帮助提高代码的可读性。考虑以下函数声明...。
int myFunc (bool, bool, bool, bool, bool, bool, bool, bool);
...
myFunc (false, true, false, false, false, true, true, false);
很容易忘记在编写甚至读取代码时哪个布尔参数意味着什么。也很容易忘记您的计数。这样的例程可以清除。
/* More descriptive names than MY_FLAGx would be better */
#define MY_FLAG1 0x0001
#define MY_FLAG2 0x0002
#define MY_FLAG3 0x0004
#define MY_FLAG4 0x0008
#define MY_FLAG5 0x0010
#define MY_FLAG6 0x0020
#define MY_FLAG7 0x0040
#define MY_FLAG8 0x0080
int myFunc (unsigned myFlags);
...
myFunc (MY_FLAG2 | MY_FLAG6 | MY_FLAG7);
使用更具描述性的标志名,它变得更具可读性。