https://medium.com/@avolitty/using-type-definition-modifiers-to-minimize-sizeof-overhead-in-c-4fc69ed3650