Ah yes. You have access to flexible array members and can assume that you're using GCC. Alas, when I perpetrated this trick I could assume neither of these, so needed a suitable union as a final member to ensure correct alignment.
The macros are just to make things less horrendously unreadable. :)