2 Copyright 1988-2022 Free Software Foundation, Inc.
3 This is part of the GCC manual.
4 For copying conditions, see the copyright.rst file.
6 .. index:: __builtin_offsetof
13 GCC implements for both C and C++ a syntactic extension to implement
14 the ``offsetof`` macro.
19 "__builtin_offsetof" "(" typename "," offsetof_member_designator ")"
21 offsetof_member_designator:
23 | offsetof_member_designator "." identifier
24 | offsetof_member_designator "[" expr "]"
26 This extension is sufficient such that
30 #define offsetof(type, member) __builtin_offsetof (type, member)
32 is a suitable definition of the ``offsetof`` macro. In C++, :samp:`{type}`
33 may be dependent. In either case, :samp:`{member}` may consist of a single
34 identifier, or a sequence of member accesses and array references.