struct Empty {}; struct EmptyMember { char i[0]; }; struct SingleMember { int i; }; struct PaddingMember { int i; char c; }; const unsigned sizeof_empty = sizeof(struct Empty); const unsigned sizeof_empty_member = sizeof(struct EmptyMember); const unsigned sizeof_single = sizeof(struct SingleMember); const unsigned sizeof_padding = sizeof(struct PaddingMember); int main() { struct Empty empty; struct EmptyMember empty_member; struct SingleMember single; struct PaddingMember padding; // Make sure globals are used. return sizeof_empty + sizeof_empty_member + sizeof_single + sizeof_padding; }