当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。