【发布时间】:2013-01-26 23:36:54
【问题描述】:
我有一个这样定义的枚举:
typedef enum : unsigned char {
START_DELIMITER = 0xAA,
END_DELIMITER = 0xBB,
} Delimiter;
当我将分隔符值与来自 const char* 的 char 字节进行比较时,如下所示:
// data is NSData;
const char *bytes = [data bytes];
if (bytes[0] == START_DELIMITER) { }
即使 bytes[0] 包含 0xAA,上述测试也是错误的。
如果我将 START_DELIMITER 定义为 const char,则比较为真。为什么即使枚举已经定义为无符号字符,对枚举的测试也会失败?
【问题讨论】:
-
我猜
char已在您的实现上签名,而0xAA不适合它。 -
为什么要使用枚举呢?为什么不声明一组常量?
标签: objective-c enums c99