c/types/offsetof

The macro offsetof expands to an integer constant expression of type size_t, the value of which is the offset, in bytes, from the beginning of an object of specified type to its specified subobject, including padding if any.

Given an object of type  with static storage duration,  shall be an address constant expression and point to a subobject of. Otherwise, the behavior is undefined.