C语言struct和union结合使用,空间最小

原创 2012年03月22日 17:41:01
struct StUserData 
{
	unsigned userdata1 : 1;		// 0--		1--
	unsigned userdata2 : 2;		// 0--    1--    2--   3--
	unsigned userdata3 : 3;
	unsigned userdata4 : 4;

	unsigned normaldata1 : 1;
	unsigned normaldata2 : 2;
	unsigned normaldata3 : 3;
	unsigned normaldata4 : 4;

	unsigned otherdata1 : 3;
	unsigned otherdata2 : 3;
	unsigned otherdata3 : 3;
	unsigned otherdata4 : 3;
};

union UnUserData
{
	StUserData info;
	UINT32 data;
};

int _tmain(int argc, _TCHAR* argv[])
{
	UnUserData data;
	memset(&(data.info), 0, sizeof(data.info));

	data.info.userdata1 = 1;
	data.info.userdata2 = 3;
	data.info.userdata3 = 5;
	data.info.userdata4 = 7;

	data.info.normaldata1 = 0;
	data.info.normaldata2 = 3;
	data.info.normaldata3 = 5;
	data.info.normaldata4 = 7;

	data.info.otherdata1 = 0;
	data.info.otherdata2 = 2;
	data.info.otherdata3 = 4;
	data.info.otherdata4 = 6;

	UnUserData data2;
	data2.data = data.data;
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C_C语言的enum、struct、union的使用详解

OK今天我们讲解C语言的三个特殊

C语言的struct/union字节对齐详解

原文出自:http://blog.csdn.net/keyearth/article/details/6129882         C 语言的一大优势就是对内存空间的控制,当然,在...

C语言sizeof(struct)与sizeof(union)

点击打开链接

C语言中的sizeof(struct )和sizeof(union)

一般32位机上各数据类型所占存储空间为: char : 8位 short : 16位 int : 32位 long : 32位 float : 32位 double : 64位 一、结构体stru...

c语言的union和struct

什么是union(联合体)? union(联合体):union是一个能在同一个存储空间(但不同时)存储不同类型数据的数据类型。 例如: union test1 { char a; ...

C语言中的struct、union、enum、Typedef

一、typedef的用法 转载地址: http://www.2cto.com/kf/201404/296683.html typedef可以看...

C语言的struct/union字节对齐详解

C 语言的一大优势就是对内存空间的控制,当然,在面向对象语言的压力下,程序员更喜欢轻松的语言,不喜欢自己还要顾虑内存空间。        可是,C 语言仍然有很强的生命力,尤其是在操作系统、嵌入式系统...

[精华] c语言中的结构(struct)和联合(union)简介

http://www.chinaunix.net/old_jh/23/179471.html [精华] c语言中的结构(struct)和联合(union)简介 ...

基础C语言之Typedef和struct的结合使用

/** * c语言typedef关键字 * typedef 作为c语言中常见的关键字, * 用法有多种,经常用来改变或者说给一种类型另取一个名字 */ #include int main(...

struct和union在内存中占用空间大小的计算

在32位和64位linux系统下的struct,union占用内存空间大小的计算
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)