空结构体:对于空结构体,就是只有结构体这个模子,但里面却没有元素的结构体。
例:
typedef struct student
{
}std;
这种空结构体的模子占一个字节,sizeof(std)=1。
柔性数组:
结构体中最后一个元素可以是一个大小未知的数组,称作柔性数组成员,规定柔性数组前面至少有一个元素.
typedef struc...
分类:
其他好文 时间:
2016-05-18 19:57:22
阅读次数:
273
关于结构体内存对齐有一下几条原则: 1.每个元素的偏移量=Min(对应元素的字节数,系统或编译器的对齐字节数)。 2.结构体的大小的,其最大元素字节数的整数倍。 3.结构体的大小是,最后一个元素偏移量+最后一个元素大小+可能补充的字节。 4.如果结构体中有数组,当做单一元素看待。 上面连个结构体大小 ...
分类:
其他好文 时间:
2016-05-15 15:14:33
阅读次数:
133
结构体内存对齐的原因:
在运行一个结构体时,编译器需要给结构体中的每个变量成员分配内存空间,如这样一个结构体中
typedef struct A
{
char c1;
int i;
int j;
}A;
对其内存空间分配问题进行分析,如若不进行内存对齐,它的内存空间是:
char类型变量c1占1个字节,紧接着int类型变量i与j分...
分类:
其他好文 时间:
2016-05-13 00:42:13
阅读次数:
107
内存对齐原则: 1.数据成员对齐规则:struct, union的数据成员,第一个数据成员放在offset为0的地方,之后的数据成员的存储起始位置都是放在该数据成员大小的整数倍位置。如在32bit的机器上,int的大小为4,因此int存储的位置都是4的整数倍的位置开始存储。 2.结构体作为数据成员的 ...
分类:
编程语言 时间:
2016-04-25 17:57:33
阅读次数:
234
1.原因:为什么需要内存对齐.1、平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。2、性能原因:数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内..
分类:
其他好文 时间:
2016-04-24 06:32:23
阅读次数:
176
为什么会出现内存对齐?因为当CPU访问内存对齐的数据时,它的运行效率是非常高的。当CPU试图读取的数值没有正确的对齐时,CPU可以执行两种操作之一:产生一个异常条件;执行多次对齐的内存访问,以便读取完整的未对齐数据,若多次执行内存访问,应用程序的运行速度就会慢。所以..
分类:
其他好文 时间:
2016-04-23 15:03:47
阅读次数:
251
结构体对齐详解
1 -- 结构体数据成员对齐的意义
许多实际的计算机系统对基本类型数据在内存中存放的位置有限制,它们会要求这些数据的起始地址的值是某个数k的倍数,这就是所谓的内存对齐,而这个k则被称为该数据类型的对齐模数(alignment modulus)。这种强制的要求一来简化了处理器与内存之间传输系统的设计,二来可以提升读取数据的速度。
比如这么一种处理器,它...
分类:
其他好文 时间:
2016-04-23 12:01:15
阅读次数:
285
空结构体:对于空结构体,就是只有结构体这个模子,但里面却没有元素的结构体。例:typedefstructstudent{}std;这种空结构体的模子占一个字节,sizeof(std)=1。柔性数组:结构体中最后一个元素可以是一个大小未知的数组,称作柔性数组成员,规定柔性数组前面至少有一个元素.ty..
分类:
其他好文 时间:
2016-04-20 23:55:26
阅读次数:
305
#include<stdio.h>
//gccubuntu32位机
#pragmapack(8)
typedefstructm
{
chara;
longb;
}M;
typedefstructn
{
chara;
charb;
longc;
}N;
typedefstructx
{
chara;
structmb;
longlongc;
}X;
typedefstructy
{
chara;
structnb;
longlongc;
}Y;
#pragmapack()
#defineA..
分类:
编程语言 时间:
2016-04-08 01:02:05
阅读次数:
274
Sizeof是c/c++中的关键字,它是一个运算符,其作用是取得一个对象(数据类型或数据对象)的长度(即占用内存的大小,以byte为单位)。其中类型包括基本数据类型(不包括void)、用户自定义类型(结构体、类)、函数类型。数据对象是指用前面提到的类型定义的普通变量和指针变量..
分类:
其他好文 时间:
2016-04-04 21:13:12
阅读次数:
129