int main ()
{
struct bit{
char f1:1;
char f2:1;
};
struct bit b;
b.f1= 0x1;
b.f2 = 0x1;
printf("%d\n",b.f1);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
使用gcc编译代码输出-1.它应该不是1吗?是因为我正在编译一个小端机器吗?
补充:使用GDB进行调试时,我看到初始化struct成员后的值为-1.即打印前它是-1.以下是GDB的打印输出:
(gdb)pb
$ 7 = {f1 = -1'',f2 = -1''}
如果您需要更多调试命令,请告诉我.请提供执行此操作的命令.