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