в исходном коде qemu у меня есть следующий макрос с именем offsetof
. Кто-нибудь может сказать мне, что он делает?
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *) 0)->MEMBER)
Он используется таким образом:
offsetof(CPUState, icount_decr.u32)
где CPUState — это структура.
Я думаю, что это дает смещение члена внутри структуры, но я не уверен.
РЕДАКТИРОВАТЬ: Да, я узнал, что происходит. В определении CPUState был макрос, который я пропустил, который включал переменную icount_decr.
<stddef.h>
определит его во встроенном компиляторе, чтобы избежать неопределенности, а также некоторых головных болей C++. - person zwol   schedule 11.08.2010