6.53 Поддержка offsetof
GCC реализует для C и C++ синтаксическое расширение для реализации макроса offsetof.
primary:
"__builtin_offsetof" "(" typename "," offsetof_member_designator ")"
offsetof_member_designator:
identifier
| offsetof_member_designator "." identifier
| offsetof_member_designator "[" expr "]"
Это расширение достаточно для того, чтобы
#define offsetof(type, member) __builtin_offsetof (type, member)
было подходящим определением макроса offsetof. В C++, тип может быть зависимым. В любом случае, член может состоять из одного идентификатора или последовательности обращений к членам и ссылок на массивы.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-13.3.0/gcc/Offsetof.html