The Lost Art of C Structure Packing (2014)
It neglects to mention that bit fields have always been the buggiest part of C compilers, and there is never a good enough reason to rely on them, if you have a choice at all. Honest shift-and-mask operations on unsigned machine words are always better, if you absolutely must pack bitwise.