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中声明的,因此不完全清楚您要做什么
(或者冒号的使用是我不知道的其他语法吗?)你有没有试过编译它?对不起,我想我必须放一个,:)你也可以在做的时候修复缺少的“=”:)嗨,谢谢你的回答,实际上我必须放一个“,”不是“;”在枚举内部。我猜给出的答案就是我想要的。