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

相关推荐
小杨同学yx17 分钟前
有关maven的一些知识点
java·开发语言
我是华为OD~HR~栗栗呀31 分钟前
华为od-21届考研-C++面经
java·c语言·c++·python·华为od·华为·面试
oioihoii39 分钟前
C++ 中的类型转换:深入理解 static_cast 与 C风格转换的本质区别
java·c语言·c++
重生之我要当java大帝39 分钟前
java微服务-尚医通-编写医院设置接口下
java·开发语言·sql
寻找华年的锦瑟39 分钟前
Qt-QDir
开发语言·qt
小妖6661 小时前
vscode 怎么运行 c++ 文件
开发语言·c++
weixin_307779131 小时前
在 Microsoft Azure 上部署 ClickHouse 数据仓库:托管服务与自行部署的全面指南
开发语言·数据库·数据仓库·云计算·azure
鱼鱼说测试1 小时前
Linux下运行Jmeter
开发语言·python
鱼鱼说测试1 小时前
postman功能接口测试
开发语言·lua
Achou.Wang1 小时前
源码分析 golang bigcache 高性能无 GC 开销的缓存设计实现
开发语言·缓存·golang