【发布时间】:2012-08-17 12:35:08
【问题描述】:
我试图用位掩码枚举文件类型,以便在按位 OR 上快速轻松地区分:
typedef enum {
FileTypeDirectory = 1,
FileTypePIX = 2,
FileTypeJPG = 4,
FileTypePNG = 8,
FileTypeGIF = 16,
FileTypeHTML = 32,
FileTypeXML = 64,
FileTypeTXT = 128,
FileTypePDF = 256,
FileTypePPTX = 512,
FileTypeAll = 1023
} FileType;
我的 OR 手术一直有效,直到 128,之后它失败了。 64 位 Mac OSX 上的枚举是否仅限于字节数据类型? (2^7=128)
【问题讨论】:
-
您的代码中的枚举保证足够大以容纳
1023,因此问题很可能与您的“后来失败”检查有关。 -
嗯....可能对发布 OR'ing 失败的代码很有用....
-
@JoachimPileborg,我认为那里的答案具有误导性,因为它谈到的是枚举类型对象的存储大小而不是常量。
标签: objective-c c enums