C++ 得到成员变量的偏移值
#include <iostream>#define GET(A,m) (int)(&((A*)0)->m);using namespace std;struct A{int a;//4char b[3];//4int d;//4int c;};int main(int argc, char *argv[]){//-------------------------------- // ss *s=(ss*)0;// int * w=&(s->c);// cout<<w;//---------------------------- //原理与以上注释相符 cout<<GET(A,c);//得到偏移值,就是0地址的转换技巧罢了 //宏的替换规则 // cout<<(int)(&((A*)0)->c);return 0;}希望能帮到大家