您的位置:首页 > 其它

结构体的长度(内存对齐)

2008-05-05 16:12 183 查看
结构体的长度并不是简单的将结构体中的成员长度相加而得,下面举例说明如何计算机构体长度:
typedef struct example
{
byte num;
byte name;
DWORD address;
}
Sizeof(example)的结果应该是8,而不是6;
VC++中为结构体分配内存时,先分配一单位长度(结构体中占内存最多数据类型,如int的长度4),然后在该单位长度中依次为结构中的变量分配空间,直至该单位空间不能再分配完一个完整的变量时为止,就再为该结构体分配另一个单位长度的存储空间。
将上面例子结构体中元素换一下位置:
typedef struct example
{
byte num;
DWORD address;
byte name;
}
Sizeof(example)的结果变为12,所以在平时的编程中注意一下内存对齐可以节省内存。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: