平时写程序在定义结构体时,合理安排结构体中元素的顺序有时很重要,会决定程序能否正常运行,这是因为不同的系统结构体的对齐方式不一样。
一般来说32位系统按四字节处理程序速度最快,在程序中定义结构体默认的对齐方式是按结构体中最大的元素大小来对齐的。为了让程序按照我们的意愿来对齐,我们可以再程序中引用 #pragma pack(n)
typedef struct _tagStTest
{
int a;
long long b;
int c;
}StTest;
StTest stTest;
sizeof(stTest) = 24;
然而
#pragma pack(4)
typedef struct _tagStTest
{
int a;
long long b;
int c;
}StTest;
StTest stTest;