我们定义了一个宏 GET_MEMBER_SIZE,可以快速获取结构体成员的大小: c #define GET_MEMBER_SIZE(type, member) sizeof(((type*)0)->member) 这个宏通过将结构体指针转换为零地址,借助 sizeof 操作符来计算给定成员的大小。对于结构体 test_struct1,可以这样调用: c typedef struct _test_struct1 { char a;...
这种方法通过宏定义简化了代码,使得获取结构体成员大小变得简洁高效。 2. 快速获取结构体成员的偏移量 获取结构体成员的偏移量也是嵌入式开发中常见的需求,它对于理解内存布局和进行指针操作至关重要。 方法一:使用offsetof宏 在C标准库中,stddef.h头文件提供了offsetof宏,用于计算结构体成员相对于结构体开头的偏移量。
如果s是结构体变量,则sizeof(s)就能测出s的大小;若s是结构体名,则用sizeof(struct s)同样能测出s的大小。都以字节数表示。