Next: Atomic Builtins, Previous: Vector Extensions, Up: C Extensions
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++, type
may be dependent. In either case, member may consist of a single
identifier, or a sequence of member accesses and array references.