C 结构构件的默认对齐方式

C 结构构件的默认对齐方式,c,x86-64,C,X86 64,在带有gcc编译器的X86_64英特尔处理器中,“C”结构中成员的默认对齐方式是什么。它是否与自然边界自对齐?结构与结构中最大元素类型所需的对齐方式相同 如果最大元素是int,并且在32位体系结构(或使用32位指令强制编译)上,则将在4字节边界上 如果使用64位指令编译,则将位于8字节边界上 与其他类型类似。您可以通过打印出结构的几个成员的内存地址来找到所需内容printf(“变量i的内存地址是结构开头的%d”,&(structure.variablei)-&structure)这是由您使用的A

在带有gcc编译器的X86_64英特尔处理器中,“C”结构中成员的默认对齐方式是什么。它是否与自然边界自对齐?

结构与结构中最大元素类型所需的对齐方式相同

如果最大元素是int,并且在32位体系结构(或使用32位指令强制编译)上,则将在4字节边界上

如果使用64位指令编译,则将位于8字节边界上


与其他类型类似。

您可以通过打印出结构的几个成员的内存地址来找到所需内容
printf(“变量i的内存地址是结构开头的%d”,&(structure.variablei)-&structure)这是由您使用的ABI定义的,通常由您的操作系统决定。在大多数(全部?)类Unix系统上,您需要查看。细节太长,不适合发布SO帖子。