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;
}

union的用法以及struct的初始化

在C/C++程序的编写中,当多个基本数据类型或复合数据结构要占用同一片内存时,我们要使用联合体;当多种类型,多个对象,多个事物只取其一时(我们姑且通俗地称其为“n 选1”),我们也 可以使用联合体来发...
  • all8023
  • all8023
  • 2013年12月08日 14:48
  • 1260

C语言中,struct与union的区别

struct和union是C语言中两种不同的数据结构,两者都是常见的复合结构,其区别主要表现在两方面: 1、联合体中所有成员共用一块地址空间,即联合体只存放了一个被选中的成员,而结构体中所有成员占用...
  • zhaojian_li
  • zhaojian_li
  • 2015年07月28日 09:29
  • 599

struct和union在内存所占空间

1.声明一个空的struct 或者union,它们所占的空间都是1B. 2.union所占的空间大小是成员变量中所占空间最大的那个变量的字节数。 比如union test {      sho...
  • y___y___
  • y___y___
  • 2015年04月27日 15:31
  • 866

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

OK今天我们讲解C语言的三个特殊
  • Core__Java
  • Core__Java
  • 2014年11月10日 20:01
  • 1827

C语言union中包含struct 小结

一 #include int main() {          union                 {                         int i;      ...
  • sjmping
  • sjmping
  • 2012年11月20日 21:32
  • 5066

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

一、typedef的用法 转载地址: http://www.2cto.com/kf/201404/296683.html typedef可以看作type define的缩写,...
  • xueyuehanzhu123
  • xueyuehanzhu123
  • 2015年03月16日 15:34
  • 1421

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

一般32位机上各数据类型所占存储空间为: char : 8位 short : 16位 int : 32位 long : 32位 float : 32位 double : 64位 一、结构体stru...
  • yagnruinihao
  • yagnruinihao
  • 2013年11月06日 21:19
  • 1914

union嵌套struct

笔试遇到一个选择题,有点晕,现在记录下: union data{ struct { int x, y; }s; int x, y; }d; d.x = 1; d.y = 2; d.s....
  • hyqwmxsh
  • hyqwmxsh
  • 2016年09月12日 17:44
  • 2419

C语言中结构体(struct)和联合(union)的使用

代码如下: #include struct Date { int mo, da, yr; }; // Declare the Holder union. union Holder { ...
  • kunshan_shenbin
  • kunshan_shenbin
  • 2014年01月31日 03:45
  • 801

C语言:typedef struct与指针

c语言规范,定义结构体:typedef struct ANSWER_HEADER { u8 u8Type; u8 u8Code; u32 u32TimeStamp; ...
  • miao5995
  • miao5995
  • 2015年10月10日 17:39
  • 221
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言struct和union结合使用,空间最小
举报原因:
原因补充:

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