我试图通过位掩码枚举文件类型,以便在按位或上快速轻松地区分:
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)
最佳答案
C 中的所有 enum
常量 都是 int
类型,而不是枚举本身的类型。因此,限制不在于 enum
变量的存储大小,而仅在于 int
的位数。
我对 Objective-C 不太了解(因为它也被标记了),但它应该不会与 C 偏离太多。
关于objective-c - 枚举按位掩码限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12005933/