写一个宏,计算结构体某个变量相对于起始位置的偏移量(模拟实现offsetof)

写一个宏,计算结构体某个变量相对于起始位置的偏移量(模拟实现offsetof)
//模拟size_t offsetof(structName, memberName)

#define OFFSETOF(struct_name,mem_name) (int)&(((struct_name*)0) -> mem_name)
struct A
{
    int a;
    short b;
    int c;
    char d;
};

int main()
{
    printf("%d\n", OFFSETOF(struct A, a));
    printf("%d\n", OFFSETOF(struct A, b));
    printf("%d\n", OFFSETOF(struct A, c));
    printf("%d\n", OFFSETOF(struct A, d));
    return 0;
}

你可能感兴趣的:(算法,c++,数据结构)