Gcc 是否有理由不强制复杂浮点类型的8字节对齐?

Gcc 是否有理由不强制复杂浮点类型的8字节对齐?,gcc,c99,compiler-optimization,memory-alignment,complex-numbers,Gcc,C99,Compiler Optimization,Memory Alignment,Complex Numbers,这是我们的后续行动 我们有一个用于嵌入式体系结构的GCC实现。因此,我们可以控制编译器和优化器的某些方面。这样的方面可能会强制复杂浮点对象的8字节对齐分配。一般来说,在我们的体系结构上,如果这些对象正确对齐,我们可以通过要求一条双加载指令而不是两条常规加载指令来优化对它们的访问 在进行一轮增强和bug修复之前,我试图弄清楚,在声明复杂的float对象时,是否有很好的理由反对强制进行这种对齐。有什么理由不强制这样做吗?我想如果你真的想弥补每个字节,也许,因为如果事情没有重新安排,对齐可能会留下一些

这是我们的后续行动

我们有一个用于嵌入式体系结构的GCC实现。因此,我们可以控制编译器和优化器的某些方面。这样的方面可能会强制复杂浮点对象的8字节对齐分配。一般来说,在我们的体系结构上,如果这些对象正确对齐,我们可以通过要求一条双加载指令而不是两条常规加载指令来优化对它们的访问


在进行一轮增强和bug修复之前,我试图弄清楚,在声明复杂的float对象时,是否有很好的理由反对强制进行这种对齐。有什么理由不强制这样做吗?

我想如果你真的想弥补每个字节,也许,因为如果事情没有重新安排,对齐可能会留下一些间隙?@DaveNewton-这是一个很好的观点,但在我们的例子中不是一个问题。支持
\u属性((对齐(8))\u
\u属性((对齐(4)))__
对于这种类型,默认值是大多数用户想要的任何内容(我说8)。@n.m.-谢谢。我认为这些属性不适用于局部(自动)变量或函数参数。我认为它适用于所有变量和结构成员。试试看。我的智能手机上没有gcc,所以我不能:-(