阅读量:0
offsetof
函数用于获取结构体或类中某个成员的偏移量。
使用 offsetof
函数需要包含 <cstddef>
头文件。
下面是 offsetof
函数的使用示例:
#include <cstddef> struct MyStruct { int x; char y; float z; }; int main() { size_t offset = offsetof(MyStruct, y); std::cout << "Offset of member y: " << offset << std::endl; return 0; }
输出结果为:
Offset of member y: 4
上述代码中,offsetof(MyStruct, y)
返回 y
成员相对于 MyStruct
对象的起始地址的偏移量。在该例中,y
的偏移量为 4 字节(因为 int
类型占用 4 个字节)。
注意,offsetof
函数只能用于 POD(plain old data)类型,即没有非静态成员函数、没有虚函数、没有基类的类型。对于非 POD 类型,如果需要获取成员的偏移量,可以使用 reinterpret_cast
或 union
的方式来实现。