在C++中,offsetof
宏用于獲取類中某個(gè)成員變量的偏移量。偏移量是指該成員變量相對于類對象起始地址的偏移量。
使用offsetof
宏需要包含頭文件<cstddef>
,示例如下:
#include <cstddef>
struct MyClass {
int a;
int b;
char c;
};
int main() {
size_t offset = offsetof(MyClass, b);
std::cout << "Offset of member 'b' in MyClass: " << offset << std::endl;
return 0;
}
在上面的示例中,offsetof(MyClass, b)
將返回成員變量b
在類MyClass
中的偏移量。注意,offsetof
只能用于POD類型(Plain Old Data),即只包含數(shù)據(jù)成員且沒有用戶自定義的構(gòu)造函數(shù)、析構(gòu)函數(shù)或虛函數(shù)的類。