位置:首頁 > 高級語言 > 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.