假设我有
struct A
{
signed char a:1;
unsigned char b:1;
};
如果我有
A two, three;
two.a = 2; two.b = 2;
three.a = 3; three.b = 3;
two
将0
在其字段中包含 s,而three
将包含1
s。因此,这让我想到,将数字分配给单个位字段会获得最低有效位(2
是10
二进制并且3
是11
)。
所以,我的问题是 - 这是正确的和跨平台的吗?或者它取决于机器、编译器等。标准是否说明了这一点,或者它是完全定义的实现?
0
注意:通过分配和1
,而不是2
和可以达到相同的结果3
。我使用2
并且3
只是为了说明我的问题,我不会在现实世界中使用它
PS 而且,是的,我对这两种语言都很感兴趣 -C
和C++
,请不要告诉我它们是不同的语言,因为我知道这一点 :)