作为bitfields的新手,我需要一些建议,以了解我在网上看过的各种例子.我想使用位域而不是位掩码来提高可读性,以及稍后为新ppl维护.
这是声明位域的常用方法:
typedef enum
{
unsigned int x: 1;
unsigned int y: 1;
}statusBits1;
Run Code Online (Sandbox Code Playgroud)
到目前为止很好,然后我看到:
typedef enum
{
unsigned int x = 1 << 0,
unsigned int y = 1 << 1
}statusBits2;
Run Code Online (Sandbox Code Playgroud)
在我的学习中,我相信这会为任何statusBits2数据类型设置默认值.这是否也将x和y的大小设置为1比特字段,如statusBits1?两者的结合是我正在寻找的.
提前致谢.
编辑:谢谢你的答案!你强迫我重读我一直在学习的东西.我正在混合各种关于位域和位掩码的帖子的信息!
即:
在Objective-C中声明和检查/比较(bitmask-)枚举
http://forum.codecall.net/topic/56591-bit-fields-flags-tutorial-with-example/
我在C#/ C++工作几年后回到C,重新学习一点点.