2017/11/6
内存对齐的规则以及作用 - 蜗牛小居 - C++博客
http://www.cppblog.com/snailcong/archive/2009/03/16/76705.html 1/6
posts1,comments18,trackbacks0,articles0
蜗
牛
小居
我
要
一
步
一
步
往
上
爬
C++
博
客
::
首
页
::
新
随
笔
::
联
系
::
聚
合
::
管
理
日
历
<
2009
年
3
月
>
日
一
二
三
四
五
六
22 23 24 25 26 27 28
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4
常
用
链
接
我
的
随
笔
我
的
评论
我
参
与
的
随
笔
留
言
簿
(1)
给
我
留
言
查
看
公
开
留
言
查
看
私
人
留
言
随
笔
分
类
C++(1)
随
笔
档案
2009
年
3
月
(1)
相
册
photo
搜
索
最
新
评论
内
存对
齐
的
规
则
以
及
作
用
Postedon2009031609:36
蜗
牛
先
生
阅
读
(31647)
评论
(19)
编
辑
收
藏
引
用
所
属
分
类
:C++
首
先
由
一个
程
序引
入
话
题
:
1//
环
境
:
vc6+windowssp2
2//
程
序
1
3#include<iostream>
4
5usingnamespacestd;
6
7structst1
8{
9chara;
10intb;
11shortc;
12};
13
14structst2
15{
16shortc;
17chara;
18intb;
19};
20
21intmain()
22{
23cout<<"sizeof(st1)is"<<sizeof(st1)<<endl;
24cout<<"sizeof(st2)is"<<sizeof(st2)<<endl;
25return0;
26}
27
程
序
的
输
出
结
果
为
:
sizeof(st1)is12
sizeof(st2)is8
问题
出
来
了
,
这
两个一
样
的
结
构
体
,
为什么
sizeof
的
时
候
大
小
不一
样
呢
?
本
文
的
主
要
目的
就
是
解
释
明
白
这
一
问题
。
内
存对
齐
,
正
是
因
为
内
存对
齐
的
影
响
,
导
致
结
果
不
同
。
对
于
大多
数
的
程
序
员
来
说
,
内
存对
齐
基
本
上
是
透
明
的
,
这
是
编
译
器
该
干
的
活
,
编
译
器
为
程
序
中
的
每
个
数据
单
元
安
排
在
合
适
的
位
置
上,
从
而
导
致
了
相
同
的
变
量
,不
同
声
明
顺
序
的
结
构
体
大
小
的
不
同
。