1 struct Empty {}; 2 class EmptyClass {}; 3 4 struct SingleMember { 5 int i; 6 }; 7 class SingleMemberClass { 8 int i; 9 }; 10 11 struct PaddingMember { 12 int i; 13 char c; 14 }; 15 class PaddingMemberClass { 16 int i; 17 char c; 18 }; 19 20 const unsigned sizeof_empty = sizeof(Empty); 21 const unsigned sizeof_empty_class = sizeof(EmptyClass); 22 const unsigned sizeof_single = sizeof(SingleMember); 23 const unsigned sizeof_single_class = sizeof(SingleMemberClass); 24 const unsigned sizeof_padding = sizeof(PaddingMember); 25 const unsigned sizeof_padding_class = sizeof(PaddingMemberClass); 26 27 int main() { 28 Empty empty; 29 EmptyClass empty_class; 30 SingleMember single; 31 SingleMemberClass single_class; 32 PaddingMember padding; 33 PaddingMemberClass padding_class; 34 // Make sure globals are used. 35 return sizeof_empty + sizeof_empty_class + sizeof_single + 36 sizeof_single_class + sizeof_padding + sizeof_padding_class; 37 } 38