您的位置:首页 > 编程语言 > C语言/C++

c++ offset define

2013-11-14 22:43 232 查看
#include <iostream>
using namespace std;

class test {
public:
void show() {
cout << y << '\n';
}
public:
int x = 10;
int y = 20;
};

#define offset_(x, yy) ((size_t)&((x *)nullptr)->y)

int main() {
test a;
int y = *(int *)((uint64_t)&a + offset_(test, y));
cout << y << '\n';
a.show();
return 0;
}

offset的宏实现

OFFSET_OF(TYPE, FIELD) ((size_t)&((TYPE*)nullptr)->FIELD)
虚继承时offset会出现负的情况
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: