当前位置: 代码迷 >> 综合 >> 2,C语言宏--结构体成员的偏移:#define OFFSET(type, member) ((size_t)(&((type *)0)->member))
  详细解决方案

2,C语言宏--结构体成员的偏移:#define OFFSET(type, member) ((size_t)(&((type *)0)->member))

热度:82   发布时间:2024-01-30 16:45:26.0

宏定义:结构体成员的偏移

define OFFSET(type, member) ((size_t)(&((type *)0)->member))
member对于(结构体类型)type起始的偏移,type一般为一个结构体类型

#include <iostream>
#include <stdio.h>using namespace std;typedef struct{int a;int b;char c;char d;
}T_type_test;#define OFFSET(type, member) ((size_t)(&((type *)0)->member)) //member对于(结构体类型)type起始的偏移,type一般为一个结构体类型, 如:T_type_test.int main()
{cout << OFFSET(T_type_test, d) << endl;return 0;
}

结果:
offset: 9

  相关解决方案