在结构中获取场的位置

Kaz*_*zar 4 c struct

一个相当简单的问题(我希望).给定C中的结构(其编译在编译时是已知的),是否有一种方法(通过宏或其他)我可以访问结构中命名字段的字节位置?

对工会的支持将是一个奖励.编译器是VC++ 2008.假设#pragma pack(1)使用了.

干杯

Car*_*rum 7

你在找offsetof.它应该在stddef.h,但如果你没有,那么一个示例实现(来自维基百科):

#define offsetof(st, m) \
    ((size_t) ( (char *)&((st *)(0))->m - (char *)0 ))
Run Code Online (Sandbox Code Playgroud)

对于联合,每个字段的偏移量是0.