欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C语言 位域

程序员文章站 2022-07-11 18:52:49
...
#include <stdio.h>

struct A
{
	char t:4; // -8 ~ 7 //半个字节,但是占一个字节,还可以存半个字节
	unsigned char k:4; // 0 ~ 15
	unsigned char n:3; // 0 ~ 7
	unsigned short i:8; // 1个字节 //如果要对其的话,对其为8
	unsigned long m; // 8个字节
}; // 按最大字节对其,这个结构体为16个字节

int main(void){

	printf("%d\n",sizeof(struct A));
	struct A a;
	a.n = 7; // 如果赋值为 8 会 有警告 warning: large integer implicitly truncated to unsigned type [-Woverflow]
	printf("%d\n",a.n);
}