當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C語言 宏 offsetof()用法及代碼示例



描述

C 庫宏offsetof(type, member-designator)導致類型為常量的整數size_t這是結構成員從結構開頭的偏移量(以字節為單位)。成員由 member-designator 給出,結構名稱以類型給出。

聲明

以下是 offsetof() 宏的聲明。

offsetof(type, member-designator)

參數

  • type- 這是 member-designator 是有效成員指示符的類類型。

  • 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.\n",
   offsetof(struct address, name));

   printf("street offset = %d byte in address structure.\n",
   offsetof(struct address, street));

   printf("phone offset = %d byte in address structure.\n",
   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.

相關用法


注:本文由純淨天空篩選整理自 C library macro - offsetof()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。