C语言位域的赋值的一个小问题

当结构体成员为int型时,它是有正负的,给c一个位并赋值为1,则它的符号位也是1,最后答应出来就是-1。给b两个位并赋值为2,即11,它的符号位也就是1,最后打印出来
就是-2。

#include<stdio.h>
int main() 
{
	struct Stu {
		int a : 1;
		int b : 2;
		int c : 1;
	}t;
	t.a = 0;
	t.b = 2;
	t.c = 1;
	printf("a=%d\nb=%d\nc=%d\n", t.a, t.b, t.c);
	printf("Stu=%d", sizeof(Stu));
	return 0;
}

结果

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页