可能重复:
这个C++代码是什么意思?
我正在尝试使用JNA将C结构映射到Java.我遇到了一些我从未见过的东西.
该struct定义如下:
struct op
{
unsigned op_type:9; //---> what does this mean?
unsigned op_opt:1;
unsigned op_latefree:1;
unsigned op_latefreed:1;
unsigned op_attached:1;
unsigned op_spare:3;
U8 op_flags;
U8 op_private;
};
Run Code Online (Sandbox Code Playgroud)
你可以看到一些变量被定义为unsigned op_attached:1,我不确定这意味着什么.这会影响为这个特定变量分配的字节数吗?
可能重复:
'unsigned temp:3'表示什么
我不明白这个结构定义.这对我来说似乎是违法的,但显然不是:
typedef struct
{
unsigned i:1;
} my_struct;
Run Code Online (Sandbox Code Playgroud)
我认为将变量标记为unsigned没有类型与将其标记为相同unsigned int.但是,我对结肠感到困惑.它有什么作用?我的猜测是它是某种初始化器,但我不知道它意味着什么.在我的头顶,我唯一期望在C中冒号的地方是三元运算符,这显然不是.所以,这似乎是一个我不熟悉的结构.任何人都可以在这个结构定义中解释冒号的目的是什么吗?宣言到底unsigned i:1;意味着什么?