| 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; |
| } |