相关疑难解决方法(0)

2454
推荐指数
25
解决办法
111万
查看次数

C中的位域 - 对齐与初始化

作为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-)枚举

C中的按位索引?

http://forum.codecall.net/topic/56591-bit-fields-flags-tutorial-with-example/

我在C#/ C++工作几年后回到C,重新学习一点点.

c enums typedef bit-fields

-2
推荐指数
1
解决办法
176
查看次数