在C語言中,#define
宏可以用來定義offsetof
宏,用來計算結構體中成員的偏移量。offsetof
宏通常定義如下:
#define offsetof(type, member) ((size_t) &((type *)0)->member)
使用offsetof
宏時,需要傳入結構體類型和成員變量名作為參數,如下所示:
#include <stdio.h>
#include <stddef.h>
struct example {
int x;
char y;
float z;
};
int main() {
size_t offset = offsetof(struct example, y);
printf("Offset of member y in struct example is %zu\n", offset);
return 0;
}
運行上面的代碼會輸出Offset of member y in struct example is 4
,表示y
成員在struct example
結構體中的偏移量為4個字節。