如何知道 c 中结构数据的布局
How to know the layout of a structure data in c
>我有一个结构如下:
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++的一部分。
相关文章:
- 防止主数据类型C++的隐式转换
- 用于访问容器<T>数据成员的正确 API
- 嵌套在类中时无法设置成员数据
- 使用流处理接收到的数据
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 在cuda线程之间共享大量常量数据
- 元数据操作失败LNK2022错误 (8013118D):重复类型中的布局信息不一致 (选择设备参数):(0x020002
- 直观的内存布局,可实现快速SIMD/面向数据的设计
- 为什么C 标准专门为具有不同访问说明符的类数据成员的内存布局提供了余地
- OPENCV HOG功能数据布局
- 标准保证的c++二进制数据布局
- 有关C++/组件数据布局、数据成员访问、方法的一般问题
- 在英特尔 CPU 上将最近的 8 个顶点插值到随机采样点时,对称 3D 网格的最有效数据布局
- 将图像读入C++,使用列主要的 Matlab 样式数据布局
- 如何知道 c 中结构数据的布局
- 顶点数据应该以每个pertex或每个属性为基础进行布局吗
- 转换为具有相同数据成员布局但实现不同的类是否安全?
- 如何在OpenGL中正确填充和对齐std430布局中的数据
- 类数据成员内存布局显示指针大小过大