the following example, the structure student is likely to be aligned on a word boundary, which is also where the member grade begins, and the member age is likely to start at the next word address. The compiler accomplishes the latter by inserting padding bytes between members as needed to satisfy the alignment requirements. There may also be padding at the end of a structure to ensure proper alignment in case the structure is used as an element of an array. Thus, the aggregate size of a structure in C can be greater than the sum of the sizes of its individual members. For example, on many systems the following code prints : struct student { char grade; /* char is 1 byte long */ int age; /* int is 4 bytes long */ }; printf ("%zu", sizeof (struct student)); See also typeof offsetof References C (programming language) C++ Articles with example C code Operators (programming) Unary operations