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


C语言 offsetof用法及代码示例


C语言stddef头文件(stddef.h)中offsetof宏的用法及代码示例。

用法:

offsetof (type,member)
返回成员偏移
具有函数形式的此宏以成员字节为单位返回偏移值成员在数据结构或联合类型中类型

返回的值是类型的无符号整数值size_t与指定字节之间的字节数成员及其结构的开始。

参数

type
一种类型,其中成员是有效的会员指定人。
member
的成员类型

返回值

类型值size_t偏移值为成员类型

示例

/* offsetof example */
#include <stdio.h>      /* printf */
#include <stddef.h>     /* offsetof */

struct foo {
  char a;
  char b[10];
  char c;
};

int main ()
{
  printf ("offsetof(struct foo,a) is %d\n",(int)offsetof(struct foo,a));
  printf ("offsetof(struct foo,b) is %d\n",(int)offsetof(struct foo,b));
  printf ("offsetof(struct foo,c) is %d\n",(int)offsetof(struct foo,c));
  
  return 0;
}


输出:
offsetof(struct foo,a) is 0
offsetof(struct foo,b) is 1
offsetof(struct foo,c) is 11


注:本文由纯净天空筛选整理自C标准库大神的英文原创作品 C offsetof function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。