objective-c - 枚举按位掩码限制

标签 objective-c c enums

我试图通过位掩码枚举文件类型,以便在按位或上快速轻松地区分:

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/

相关文章:

objective-c - 单点触控设备只会崩溃

#include 指令可以放在文件开头以外的地方吗(比如在循环中)?

C#:将特定枚举类型的数组作为 params object[] 参数传递

iphone - 如何在 objective-c 中制作 CGFloat 数组?

ios - 如何对键的 NSArray 进行排序?

C: do-while 释放链表

c - 如何制作具有透明背景的 OpenGL 渲染上下文?

java - 在 JNI 中打开枚举?

c - 当您调用包含枚举类型的结构时会发生什么?

ios - 从复杂的NSString中提取日期