Raj*_*thi 1 c structure bit-fields
我期待1作为输出..
#include<stdio.h>
int main(){
struct A{
int a:1;
};
struct A bb;
bb.a=1;
printf("%d",bb.a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
通过这样做int a:1,你设置a为1 bit signed int.它由1位表示,并假设在您的实现中有两个补码表示,它有一个范围{0,-1}.因此设置1为a将表示值-1.
附录:
请注意,按C90标准,平原int是一个signed int; 但是当谈到位字段时,以下情况属实:
位字段可以具有int,unsigned int或signed int类型.普通
int比特字段的高阶比特位置是否被视为符号比特是实现定义的