C INTA:2语法的意义

C INTA:2语法的意义,c,C,可能重复: 我遇到了一种语法,比如intvariable:4 谁能告诉我这个语法是什么意思吗 struct abc { int a; int b:2; int c:1; };`enter code here` 它定义结构中位字段的宽度。位字段包含一个整数值,但其长度限制为一定数量的位,因此它只能包含一个有限的值范围 在您发布的代码中,在结构中,a是32位整数,b是2位位字段,c是1位字段。是位字段。它只存储2位,而不是存储b的完整整数,因此b的值可以是-2、-1、0和1。类似地,c只能有-1

可能重复:

我遇到了一种语法,比如int
variable:4
谁能告诉我这个语法是什么意思吗

struct abc
{
int a;
int b:2;
int c:1;
};`enter code here`

它定义结构中位字段的宽度。位字段包含一个整数值,但其长度限制为一定数量的位,因此它只能包含一个有限的值范围


在您发布的代码中,在结构中,
a
是32位整数,
b
是2位位字段,
c
是1位字段。

是位字段。它只存储2位,而不是存储b的完整整数,因此b的值可以是-2、-1、0和1。类似地,c只能有-1和0的值

根据编译器的版本,符号扩展有点不可预测,有些系统可能会将这些值表示为0、1、2和3或0和1


这也会将字段压缩为小于一个整数,但同样,这是以实现定义的方式进行的,最好不要假设实际使用的内存量或内存中数据的顺序。

ok。。非常感谢你。。。。