该程序使用C++语言输入四种数据类型(int、float、double、long double)的值,并输出它们的字节大小。
C编译器默认按自然对齐分配结构体空间:成员按自身类型长度对齐,必要时插入填充字节;结构体整体按最大成员对齐,末尾补齐。可用#pragma pack(n)指定对齐,成员和整体均取n与自身长度的较小值;当n不小于所有成员长度时该指令无效。还可用__attribute__((aligned(n)))或packed控制对齐。文中以多个结构体示例说明不同声明顺序及pack(2)下的sizeof结果。
完成下面两步后,将自动完成登录并继续当前操作。