本文介绍了你如何使用offsetof()上的一个结构?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要offsetof()在 mystruct1
帕拉姆线。我试过
offsetof(结构mystruct1,rec.structPtr1.u_line.line)
和也
offsetof(结构mystruct1,行)
但既不工程。
工会{
结构mystruct1 structPtr1;
结构mystruct2 structPtr2;
} REC;typedef结构mystruct1 {
工会{
结构{
短LEN;
焦炭BUF [2];
}线; 结构{
短LEN;
} 商标; } u_line;
};
解决方案
的 offsetof()
宏有两个参数。 C99的标准说(在§7.17<&STDDEF.H GT;
)
So, you need to write:
offsetof(struct mystruct1, u_line.line);
However, we can observe that the answer will be zero since mystruct1
contains a union
as the first member (and only), and the line
part of it is one element of the union, so it will be at offset 0.
这篇关于你如何使用offsetof()上的一个结构?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!