一个相当简单的问题(我希望)。给定 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/

10-11 20:54