本文介绍了你如何使用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()上的一个结构?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-01 06:34