offsetof宏在C語言中怎樣使用

小樊
82
2024-07-01 10:59:41
欄目: 編程語言

在C語言中,#define宏可以用來定義offsetof宏,用來計(jì)算結(jié)構(gòu)體中成員的偏移量。offsetof宏通常定義如下:

#define offsetof(type, member) ((size_t) &((type *)0)->member)

使用offsetof宏時(shí),需要傳入結(jié)構(gòu)體類型和成員變量名作為參數(shù),如下所示:

#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;
}

運(yùn)行上面的代碼會(huì)輸出Offset of member y in struct example is 4,表示y成員在struct example結(jié)構(gòu)體中的偏移量為4個(gè)字節(jié)。

0