Home C&C++函数库 c++ 语法 程序源码 Linux C库

offsetof

macro   <cstddef>

offsetof (type,member)

返回成员偏移量

这个函数形式的宏返回 数据结构 或 联合类型 中成员type的字节偏移量。

返回的值是size_t类型的无符号整型值,其字节数等于该成员和其结构体开始之间距离。

☲  参数


type

一种类型,其中成员是有效的成员标志符。
-C : 类型应为结构或联合类型。
-C++98 : 类型应为POD类(包括联合)。
-C++11 : 类型应该是标准布局( standard-layout)类(包括联合(unions))。

member

type的成员。

☉  返回值



size_t类型的值,type成员的偏移量。

☣  示例



/* 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

➤  异常



No-throw保证:此宏从不抛出异常:noexcept(offset (type,member))始终为true。

联系我们 免责声明 关于CandCplus 网站地图