位置:首页 > 高级语言 > C语言标准库 > offsetof() - C函数

offsetof() - C函数

C库宏offsetof(type, member-designator) 结果在一个常数整数 size_t 类型是一个结构成员的结构从一开始的字节偏移。构件由下式给出部件指示符,是由于在不同的结构的名称。

声明

以下是声明的 offsetof() 宏。

offsetof(type, member-designator)

参数

  • type -- 这个类成员指示符类型是一个有效的成员指示符。

  • member-designator -- 这是类类型成员指示符。

返回值

该宏返回值的类型是size_t,该类型成员的偏移值。

例子

下面的例子演示了如何使用offsetof() 宏。 

#include <stddef.h>
#include <stdio.h>

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.