typedef struct{
int a:1, b:1;
}test;
a
和b
能够存储最多255个数字。如果变量a
存储的值大于此值,这将影响b
的值,对吗?我的记忆管理能力很差。此外,是否建议以这种方式更改结构中字段的大小?
发布于 2018-01-31 10:41:55
C中的大多数变量都有一个大小,即字节的整数。位字段是结构的一部分,它不一定占用字节的整数;它们可以占用任意数量的位。多个位字段可以打包到一个存储单元中.在这里,这些是1位比特的比特能够容纳0
和-1
。
如果有更多的数字存储在1位位字段中,那么这将是未定义的行为(签名溢出)。
在本例中,更显着地在位字段中使用unsigned
类型
typedef struct{
unsigned int a:1, b:1;
}test;
https://stackoverflow.com/questions/48540081
复制相似问题