结构体的对齐问题
typedef struct {
char c;
short s;
int i;
long l;
float f;
double d;
long double ld;
} Primitives;
cout << sizeof(Primitives) << endl;
这个输出的大小是40
可是long double的大小是12
按照对齐的规则,结构体总大小应该是其中占用字节数最大的类型的整数倍
因此把long double当成是一个类型是解释不通的
我的理解是在这个结构体中占用字节数最大的就是double
long只是一个修饰符,long double不是一种类型
不知道这样理解对不,请教各位,谢谢