CONTAINING_RECORD宏的使用
已知类或结构体成员变量的地址,可以取得类或结构体对象的地址。
-
代码
#include <windows.h> #include <iostream>class MyClass { public:MyClass(){}virtual ~MyClass(){}public:int m_Value1;int m_Value2;int m_Value3; };int main(int argc, char** argv) {//已知类或结构体成员变量的地址,可以取得类或结构体对象的地址MyClass myObj;int* pValue2 = &(myObj.m_Value2);MyClass* pObjBase = CONTAINING_RECORD(pValue2, MyClass, m_Value2);std::cout << "long long(&myObj)" << long long(&myObj) << std::endl<< "long long(pObjBase)" << long long(pObjBase) << std::endl;return 0; }
-
输出结果
CONTAINING_RECORD的探究
以下内容来自:https://blog.csdn.net/zyhse/article/details/109246875