Offsetof (Using the GNU Compiler Collection (GCC)) (original) (raw)
6.12.6 Support for offsetof
¶
GCC implements for both C and C++ a syntactic extension to implement the offsetof
macro.
primary:
"__builtin_offsetof" "(" typename
"," offsetof_member_designator ")"
offsetof_member_designator:
identifier
| offsetof_member_designator "." identifier
| offsetof_member_designator "[" expr
"]"
This extension is sufficient such that
#define offsetof(type, member) __builtin_offsetof (type, member)
is a suitable definition of the offsetof
macro. In C++, typemay be dependent. In either case, member may consist of a single identifier, or a sequence of member accesses and array references.