C 获取字段在结构中的位置
一个相当简单的问题(我希望如此)。给定C中的结构(其布局在编译时已知),是否有方法(通过宏或其他)可以访问结构中命名字段的字节位置 对工会的支持将是一种奖励。编译器是VC++2008。假设使用了C 获取字段在结构中的位置,c,struct,C,Struct,一个相当简单的问题(我希望如此)。给定C中的结构(其布局在编译时已知),是否有方法(通过宏或其他)可以访问结构中命名字段的字节位置 对工会的支持将是一种奖励。编译器是VC++2008。假设使用了#pragma包(1) 干杯您正在寻找的补偿。它应该在stddef.h中,但如果您没有,请提供一个示例实现(来自): 对于联合,每个字段的偏移量都是0使用offset of,from (除非MSVC++2008没有提供它,在这种情况下,请按照Carl Norum实现您自己的。不过,我很确定它是从C89开始
#pragma包(1)
干杯您正在寻找的补偿。它应该在
stddef.h
中,但如果您没有,请提供一个示例实现(来自):
对于联合,每个字段的偏移量都是
0
使用offset of
,from
(除非MSVC++2008没有提供它,在这种情况下,请按照Carl Norum实现您自己的。不过,我很确定它是从C89开始使用的)。接受,但我必须添加一个自定义OffsetFunion宏,因为您提供的宏不支持union。我刚刚把union放在
st*
前面,效果很好。谢谢
#define offsetof(st, m) \
((size_t) ( (char *)&((st *)(0))->m - (char *)0 ))