https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118997
--- Comment #7 from Vincenzo Romano <vincenzo.romano at gmail dot com> --- Quoting from "6.18 Arrays of Length Zero" > Declaring zero-length arrays is allowed in GNU C as an extension. I would say that under GNU C it is an extension. Or that the documentation needs some reviewing. Adding an "__attribute__ ((__packed__))" to the struct (obviously) removes that padding. My wishful thinking attitude made me thinking that a zero-length array was not going to change structure padding/alignment. I now know I was wrong.