C语言,struct 结构体、union共用体的使用

//状态字节,根据数据定义几个标志,标志位依据联合体内部结构体进行变量定义

//目的,节省内存空间,省去特定字节

c 复制代码
struct STATDATA
{
	union
	{
		unsigned char stat;
		struct 
		{
			unsigned stat0:1;
			unsigned stat1:1;
			unsigned stat2:1;
			unsigned stat3:1;
			unsigned stat4:1;
			unsigned stat5:1;
			unsigned stat6:1;
			unsigned stat7:1;
		};
	};
};
struct STATDATA STATDATA1;
struct STATDATA STATDATA2;


int main(void)
{
	STATDATA1.stat = 0x55;
	STATDATA2.stat = 0xAA;
	printf("STATDATA1.stat0 = %d\n",STATDATA1.stat0);
	printf("STATDATA1.stat1 = %d\n",STATDATA1.stat1);
	printf("STATDATA1.stat2 = %d\n",STATDATA1.stat2);
	printf("STATDATA1.stat3 = %d\n",STATDATA1.stat3);
	printf("STATDATA1.stat4 = %d\n",STATDATA1.stat4);
	printf("STATDATA1.stat5 = %d\n",STATDATA1.stat5);
	printf("STATDATA1.stat6 = %d\n",STATDATA1.stat6);
	printf("STATDATA1.stat7 = %d\n",STATDATA1.stat7);
	printf("STATDATA2.stat0 = %d\n",STATDATA2.stat0);
	printf("STATDATA2.stat1 = %d\n",STATDATA2.stat1);
	printf("STATDATA2.stat2 = %d\n",STATDATA2.stat2);
	printf("STATDATA2.stat3 = %d\n",STATDATA2.stat3);
	printf("STATDATA2.stat4 = %d\n",STATDATA2.stat4);
	printf("STATDATA2.stat5 = %d\n",STATDATA2.stat5);
	printf("STATDATA2.stat6 = %d\n",STATDATA2.stat6);
	printf("STATDATA2.stat7 = %d\n",STATDATA2.stat7);
	
	return 0;
}

// 输出结果:

// STATDATA1.stat0 = 1

// STATDATA1.stat1 = 0

// STATDATA1.stat2 = 1

// STATDATA1.stat3 = 0

// STATDATA1.stat4 = 1

// STATDATA1.stat5 = 0

// STATDATA1.stat6 = 1

// STATDATA1.stat7 = 0

// STATDATA2.stat0 = 0

// STATDATA2.stat1 = 1

// STATDATA2.stat2 = 0

// STATDATA2.stat3 = 1

// STATDATA2.stat4 = 0

// STATDATA2.stat5 = 1

// STATDATA2.stat6 = 0

// STATDATA2.stat7 = 1

相关推荐
仍然探索未知中29 分钟前
C语言经典100例
c语言
数据小小爬虫31 分钟前
如何利用Python爬虫获取商品历史价格信息
开发语言·爬虫·python
Gao_xu_sheng33 分钟前
Java程序打包成exe,无Java环境也能运行
java·开发语言
NiNg_1_23438 分钟前
Python的sklearn中的RandomForestRegressor使用详解
开发语言·python·sklearn
谢家小布柔42 分钟前
java中的继承
java·开发语言
黑色叉腰丶大魔王42 分钟前
《基于 Python 的网页爬虫详细教程》
开发语言·爬虫·python
爱吃西瓜的小菜鸡43 分钟前
【C语言】矩阵乘法
c语言·学习·算法
l138494274511 小时前
Java每日一题(2)
java·开发语言·游戏
晓纪同学1 小时前
QT创建一个模板槽和信号刷新UI
开发语言·qt·ui
WANGWUSAN661 小时前
Python高频写法总结!
java·linux·开发语言·数据库·经验分享·python·编程