例:
typedef struct
{unsigned shortcrc; /* CRC16 over data bytes*/
unsigned chardata[1]; /* Environment data - variable lenth */
}env_t;
求data[0]偏移地址 =>
offset = (unsigned long )((env_t*)0)->data[0];
使用宏写成通用的方式 =>
#define struct_off(type, field) (unsigned long)( (type*)0 )->field
本文详细介绍了如何在C语言中通过结构体定义获取特定成员的偏移地址,并使用宏实现通用化的操作。重点讨论了如何在不同长度的数据成员数组上获取偏移地址的方法,提供了具体的示例代码。
1045

被折叠的 条评论
为什么被折叠?



