在C++中,offsetof
是一個(gè)宏,用于返回一個(gè)結(jié)構(gòu)體中特定成員的偏移量。其語(yǔ)法如下:
#define offsetof(type, member) ((size_t) &((type *)0)->member)
其中,type
表示結(jié)構(gòu)體的類型,member
表示結(jié)構(gòu)體中的成員。通過(guò)offsetof
宏,可以得到結(jié)構(gòu)體中某個(gè)成員相對(duì)于結(jié)構(gòu)體起始地址的偏移量。通常情況下,offsetof
用于編寫通用的數(shù)據(jù)結(jié)構(gòu)處理代碼,以便于在不同平臺(tái)下獲取結(jié)構(gòu)體成員的偏移量。