在Linux中,offsetof是一個宏函數,用于獲取結構體中成員的偏移量。它的使用方法如下:
#include <stddef.h>
#define offsetof(type, member) ((size_t) &((type *)0)->member)
其中,type表示結構體的類型,member表示結構體中的成員。
例如,假設有以下結構體定義:
struct person {
char name[20];
int age;
float height;
};
可以使用offsetof宏函數獲取成員的偏移量,如下所示:
#include <stddef.h>
#include <stdio.h>
struct person {
char name[20];
int age;
float height;
};
int main() {
size_t offset = offsetof(struct person, age);
printf("The offset of age in struct person is: %zu\n", offset);
return 0;
}
運行以上代碼,將會輸出:
The offset of age in struct person is: 20
這說明在結構體person中,成員age的偏移量為20個字節。