offsetof

来自cppreference.com
< c‎ | types
定义于头文件 <stddef.h>
#define offsetof(type, member) /*implementation-defined*/

offsetof展开成size_t类型的常量,其值是从指定类型的对象开始,到其指定成员的偏移字节数,若有填充则包含之。

[编辑] 示例

#include <stdio.h>
#include <stddef.h>
 
struct S {
    char c;
    double d;
};
 
int main(void)
{
    printf("the first element is at offset %zu\n", offsetof(struct S, c));
    printf("the double is at offset %zu\n", offsetof(struct S, d));
}

可能的输出:

the first element is at offset 0
the double is at offset 8

[编辑] 参阅

sizeof运算符返回的无符号整数类型
(类型定义) [edit]
offsetofC++文档