用宏求结构体的内存偏移地址
#include <iostream>
using namespace std;
#define OFFSET(type,field) (int)&(((type*)10)->field)
struct S {
int a;
char c;
int b;
};
int main()
{
cout << OFFSET(S,a) << endl;
cout << (int)&(((S*)10)->c);
}
本文介绍了一种使用宏定义来获取结构体成员变量内存偏移地址的方法。通过一个具体的例子展示了如何定义宏OFFSET,并利用它来计算结构体成员变量相对于结构体基址的偏移量。
用宏求结构体的内存偏移地址
#include <iostream>
using namespace std;
#define OFFSET(type,field) (int)&(((type*)10)->field)
struct S {
int a;
char c;
int b;
};
int main()
{
cout << OFFSET(S,a) << endl;
cout << (int)&(((S*)10)->c);
}
414

被折叠的 条评论
为什么被折叠?