结构体,位赋值问题
- C/C++ code
#include <iostream>using namespace std;int main(){ struct A { int a:1; int b:2; int c:1; }sa; sa.a = 1; sa.b = 3; sa.c = 1; printf("%d, %d, %d\n", sa.a, sa.b, sa.c); return 0;}为什么都输出-1呢?
[解决办法]
全部都是符号位为负,且都是1的补码,当然都是-1;不想如此的话,可以改为:
struct A
{
unsigned int a:1;
unsigned int b:2;
unsigned int c:1;
}sa;