为什么 CFBit 定义为 UInt32?

Why is CFBit defined as a UInt32?

Apple 将 CFBit 记录为 UInt32,但我不明白为什么。如果每个 bit 定义为 32 bits,这不会破坏使用 bit 向量的目的?我错过了什么吗?

不,不是,因为 CFBit 不是例如 class 的存储。一个 CFBitVector。它只是用来比较位向量中特定位置的特定位是 0 还是 1。编译器 (clang) 中没有内置类型来存储单个位(就像在某些嵌入式系统的编译器中一样),因此需要这种解决方法。为什么选择 UInt32 用于此目的,我不知道。

再次声明:CFBitVector 在内部是不是 CFBit 实例的向量。