如何知道 c 中结构数据的布局

How to know the layout of a structure data in c

本文关键字:数据 布局 结构 何知道      更新时间:2023-10-16

>我有一个结构如下:

struct A{
         int a;
         int b;
         char c;
};

我想知道引用结构的成员的内存地址。我需要编写一个函数或宏才能获得以下结果。

 myfun( A , c ) ---> (4 + 4 - 1) 7
 myfun( A , b ) ---> (4 -1) 3 
 myfun( A , a ) ---> 0

有没有家伙?

注意:应该只将结构名称和成员名称传递给函数(myfun)。不允许创建变量并将其传递给函数。但是,您可以在函数中执行任何操作。

这就是

offsetof宏的作用。它已经是C++的一部分。