相关疑难解决方法(0)

结构或联合中的'unsigned temp:3'是什么意思?

可能重复:
这个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,我不确定这意味着什么.这会影响为这个特定变量分配的字节数吗?

c c++ colon bit-fields

57
推荐指数
3
解决办法
1万
查看次数

冒号在这个结构定义中做了什么?

可能重复:
'unsigned temp:3'表示什么

我不明白这个结构定义.这对我来说似乎是违法的,但显然不是:

typedef struct
{
    unsigned i:1;
} my_struct;
Run Code Online (Sandbox Code Playgroud)

我认为将变量标记为unsigned没有类型与将其标记为相同unsigned int.但是,我对结肠感到困惑.它有什么作用?我的猜测是它是某种初始化器,但我不知道它意味着什么.在我的头顶,我唯一期望在C中冒号的地方是三元运算符,这显然不是.所以,这似乎是一个我不熟悉的结构.任何人都可以在这个结构定义中解释冒号的目的是什么吗?宣言到底unsigned i:1;意味着什么?

c

5
推荐指数
1
解决办法
7187
查看次数

标签 统计

c ×2

bit-fields ×1

c++ ×1

colon ×1