C库宏offsetof(type, member-designator) 结果在一个常数整数 size_t 类型是一个结构成员的结构从一开始的字节偏移。构件由下式给出部件指示符,是由于在不同的结构的名称。
声明
以下是声明的 offsetof() 宏。
offsetof(type, member-designator)
参数
type -- 这个类成员指示符类型是一个有效的成员指示符。
member-designator -- 这是类类型成员指示符。
返回值
该宏返回值的类型是size_t,该类型成员的偏移值。
例子
下面的例子演示了如何使用offsetof() 宏。
#include
#include
struct address {
char name[50];
char street[50];
int phone;
};
int main()
{
printf("name offset = %d byte in address structure.
",
offsetof(struct address, name));
printf("street offset = %d byte in address structure.
",
offsetof(struct address, street));
printf("phone offset = %d byte in address structure.
",
offsetof(struct address, phone));
return(0);
}
让我们编译和运行上面的程序,这将产生以下结果:
name offset = 0 byte in address structure.
street offset = 50 byte in address structure.
phone offset = 100 byte in address structure.
¥ 我要打赏
纠错/补充
收藏
加QQ群啦,易百教程官方技术学习群
注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。