-
#include <iostream> - #define GET(A,m) (int)(&((A*)0)->m);
- using namespace std;
- struct A{
- int a;//4
- char b[3];//4
- int d;//4
- int 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;
- }
-
C++ 得到成员变量的偏移值
最新推荐文章于 2023-10-09 21:36:04 发布