我正在寻找一段代码,它可以告诉我结构中字段的偏移量,而无需分配结构的实例。
IE:给定
struct mstct {
int myfield;
int myfield2;
};
我会写:
mstct thing;
printf("offset %lu\n", (unsigned long)(&thing.myfield2 - &thing));
得到 offset 4
为输出。没有那个我怎么办 mstct thing
声明/分配一个?
我知道 &<struct>
并不总是指向结构的第一个字段的第一个字节,我可以稍后解释。
最佳答案
标准的 offsetof() 宏(在 stddef.h 中)怎么样?
编辑:对于可能由于某种原因没有可用的 offsetof() 宏的人,您可以使用以下内容获得效果:
#define OFFSETOF(type, field) ((unsigned long) &(((type *) 0)->field))
关于c++ - C/C++ 结构偏移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/142016/