在现有代码中,对于某个失败案例有几个“原因”。这些“原因”的定义如下:
#define STRING_NOT_FOUND (1 << 0)
#define STRING_INVALID (1 << 1)
#define STRING_TOO_LARGE (1 << 2)
...etc
这些是使用函数设置的setFailureReason(int reason);
与使用数字相比,在定义这些常量时使用移位运算符有什么优势,如下所示:
#define STRING_NOT_FOUND 1
#define STRING_INVALID 2
#define STRING_TOO_LARGE 4