On Tue, 7 Jan 2025, 03:09 M Chhapgar via Gcc, <gcc@gcc.gnu.org> wrote:

> Hello,
>
> I am learning about memory alignment and noticed that on my x86-64 machine
> with GCC 14, a `complex double` has a size of 16 bytes, but an alignment of
> only 8 bytes. I am curious as to why this is.


Because it's roughly equivalent to:

double arr[2];

This also has size 16 and alignment 8.

Doesn't it run the risk of
> ending up with a `complex double` that straddles cache lines?
>

Yes, but that's not a problem.

Reply via email to