在 qemu 源代码中,我有以下名为 offsetof
的宏。谁能告诉我它的作用?
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *) 0)->MEMBER)
它以这种方式使用:
offsetof(CPUState, icount_decr.u32)
其中 CPUState 是一个结构。
我认为它给出了成员在结构内的偏移量,但我不确定。
编辑:是的,我发现发生了什么。 CPUState 的定义里面有一个宏,我错过了,其中包括变量 icount_decr。
最佳答案
它获取结构成员的偏移量。它通过将地址零转换为该类型的结构然后获取成员的地址来实现。
关于c - 下面的宏是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3453063/