关于结构体,联合体及内存大小的问题

原创 2007年10月03日 21:30:00

struct s1
{
char *ptr,ch;
union A
{
   short a,b;
   unsigned int c:2, d:1;
};
struct s1* next;
};//这样是12个字节

struct s1
{
char *ptr,ch;
union
{
   short a,b;
   unsigned int c:2, d:1;
};
struct s1* next;
};//这样是16个字节

需要说明的问题有3点:

1.UNION后面不跟A,是声明了结构体的一个成员,占内存,而后面跟了A定义了一个类型,没有分配内存

2.联合体UNION取其中最大的类型的内存分配大小

3.关于char ch,如果你连着分配4个char,都是那些字节,这个东西好象叫做内存对齐,对于什么时候才内存对齐不太了解,因为sizeof(char)是一个字节

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

相关文章推荐

C语言结构体,联合体,枚举体的内存大小计算方法

结构体的定义: struct stu{     char *name;  //姓名     int num;  //学号     int age;  //年龄  ...

C++学习之旅——结构体和联合体的区别,以及数据对齐方式影响内存大小

联合体 用途:使几个不同类型的变量共占一段内存(相互覆盖) 结构体是一种构造数据类型 用途:把不同类型的数据组合成一个整体-------自定义数据类型 总结: 声明一...

C++学习之旅——结构体和联合体的区别,以及数据对齐方式影响内存大小

转载于:http://blog.csdn.net/dreamback1987/article/details/8504943 联合体 用途:使几个不同类型的变量共占一段内存(相互覆盖) ...

共用体和结构体所占内存大小的计算方法二

一个结构体变量定义完之后,其在内存中的存储并不等于其所包含元素的宽度之和。 例一: #include using namespace std; struct X ...

C语言结构体占用空间内存大小解析

结构体的数据类型的有点我们就不啰嗦了,直接来看相同数据结构体的几种书写的格式吧。 格式一: 01.struct tagPhone 02.{ 03. char A; 0...
  • fb2058
  • fb2058
  • 2013-11-12 16:59
  • 11502

struct结构体占内存大小计算

以下为在32位编译环境下的信息 1字节:char 2字节:short(不管是不是signed或unsigned) 4字节:int、long、float(不管是不是signed或unsigned)...

结构体、联合体和位断的内存对齐问题

结构体(struct)内存对齐规则: 1.第一个成员在与结构体变量偏移量为0的地址处。 2.其它成员变量要对齐到某个数字(对齐数)的整数倍的地址处。 //对齐数=编译器默认的一个对齐数与该成员大...

u-boot2010.03 移植篇(三)-----修正配置文件.解决内存大小显示问题

---------------------------------------------------------- 使用环境 PC:    Ubuntu 11.04 kernel: 2.6....
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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