Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用“:”“数字”;在声明变量时_C++_Enums - Fatal编程技术网

C++ 使用“:”“数字”;在声明变量时

C++ 使用“:”“数字”;在声明变量时,c++,enums,C++,Enums,如果我按如下方式声明枚举: typedef enum A { a = 0x00000001, b = 0x00000002 } AObj; 现在,如果我声明一个AObj变量,如下所示,这意味着什么 AObj myAObj : 2; 这是一种指定所用位数的方法。 也就是说2意味着2位 还请注意,这仅在与同一结构中的其他位字段一起使用时才有用,因为对齐和填充将导致跳过内存。您可能正在谈论的是“”,它使您能够创建一个可以在其中寻址单个位的结构。但是(除非我弄错了!)您的语法完全错误

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

typedef enum A
{
    a = 0x00000001,
    b = 0x00000002
} AObj;
现在,如果我声明一个AObj变量,如下所示,这意味着什么

AObj myAObj : 2;

这是一种指定所用位数的方法。 也就是说2意味着2位


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

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

    typedef enum A
    {
       a = 0x00000001,
       b = 0x00000002
    } AObj;
更重要的是,位字段是在
struct
s中声明的,因此不完全清楚您要做什么


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

你有没有试过编译它?对不起,我想我必须放一个,:)你也可以在做的时候修复缺少的“=”:)嗨,谢谢你的回答,实际上我必须放一个“,”不是“;”在枚举内部。我猜给出的答案就是我想要的。