一个相当简单的问题(我希望)。给定 C 中的结构(其布局在编译时已知),有没有办法(通过宏或其他方式)访问结构中命名字段的字节位置?
对 union 的支持将是一种奖励。编译器是VC++ 2008,假设使用的是#pragma pack(1)
。
干杯
最佳答案
您正在寻找 offsetof
。它应该在 stddef.h
中,但如果你没有,一个示例实现(来自 wikipedia ):
#define offsetof(st, m) \
((size_t) ( (char *)&((st *)(0))->m - (char *)0 ))
对于 union ,每个字段的偏移量是
0
。关于c - 在 Struct 中获取字段的位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4126428/