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。。非常感谢你。。。。