在声明变量时使用“:number”

时间:2009-02-14 11:33:25

标签: c++ enums

如果我按如下方式声明枚举:

typedef enum A
{
    a = 0x00000001,
    b = 0x00000002
} AObj;

现在,如果我按如下方式声明一个AObj变量,这是什么意思?

AObj myAObj : 2;

2 个答案:

答案 0 :(得分:4)

这是一种指定使用位数的方法。 那是2意味着2位。

另请注意,这仅在与同一结构中的其他位字段一起使用时才有用,因为对齐和填充将导致跳过内存。

答案 1 :(得分:4)

您可能正在谈论“bit fields”,它使您能够创建一个结构,您可以在其中处理各个位。但是(除非我弄错了!)你的语法都错了:你的枚举中缺少逗号和等号:

    typedef enum A
    {
       a = 0x00000001,
       b = 0x00000002
    } AObj;

更重要的是,位域是在struct s内声明的,所以你要做的事情并不完全清楚。

(或者使用冒号一些其他语法我不知道???)