【问题标题】:Using ": number" while declaring variables [duplicate]在声明变量时使用“:数字”[重复]
【发布时间】:2009-02-14 11:33:24
【问题描述】:

如果我声明一个枚举如下:

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

现在如果我如下声明一个 AObj 的变量,这意味着什么?

AObj myAObj : 2;

【问题讨论】:

  • 你尝试编译过吗?
  • 对不起,我想我必须放一个,:)
  • 你也可以修复丢失的“=” :)

标签: c++ enums


【解决方案1】:

这是一种指定使用的位数的方法。 即 2 表示 2 位。

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

【讨论】:

    【解决方案2】:

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

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

    更重要的是,位域是在structs 中声明的,所以你要做什么并不完全清楚。

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

    【讨论】:

    • 嗨,谢谢你的回答,实际上我必须放一个','而不是';'在枚举里面。我想给出的答案就是我正在寻找的。​​span>
    猜你喜欢
    • 2018-10-02
    • 2013-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多