c语言对齐方式有什么用

来源:百度知道 编辑:UC知道 时间:2024/05/28 09:50:41
希望用打比喻的方式告诉我,因为我比较笨.

三种对齐方式:

1、 自然对齐方式(Natural Alignment):与该数据类型的大小相等。

2、 指定对齐方式 :

#pragma pack(8) //指定Align为 8;
#pragma pack() //恢复到原先值
3、 实际对齐方式:

Actual Align = min ( Order Align, Natual Align )
对于复杂数据类型(比如结构等):实际对齐方式是其成员最大的实际对齐方式:

Actual Align = max( Actual align1,2,3,…)
实际对齐方式不就是自然对齐方式吗.....对齐它在电脑里到底是什么样的,我想不出来,高手打比喻啊....它有什么用
1、 成员为成员Actual Align的整数倍,在前面加Padding。

成员Actual Align = min( 结构Actual Align,设定对齐方式)

2、 结构为结构Actual Align的整数倍,在后面加Padding.

这个什么前面后面的,根本没办法理解

Align和 sizeof 的区别

#pragma pack(8) //指定Align为 8
struct STest1
{
char ch1;
long lo1;
char ch2;
} test1;
#pragma pack()

现在
Align of STest1 = 4 , sizeof STest1 = 12 ( 4 * 3 )
test1在内存中的排列如下( FF 为 padding ):

00 -- -- -- 04 -- -- -- 08 -- -- -- 12 -- -- --
01 FF FF

对齐对程序本身并没有影响,但为了遵循清晰第一,效率第二的编程原则,常将程序写得整齐一些,便于他人阅读。

!第一次听到有人说对齐,哈哈哈,楼上的去翻翻书吧!这和具体的存储有关系的.