0
我得到了我的C这样的事情++头文件说明需要这个C++类
#define CLASS_DECLARATION_S_BIT(Type, FuncName, BitCount) \
protected: \
Type m_k##FuncName : BitCount; \
public: \
Type const FuncName()const{return m_k##FuncName;} \
void FuncName(Type const& Value){m_k##FuncName = Value;}
typedef struct tagTest
{
public:
CLASS_DECLARATION_S_BIT(unsigned __int64, Test1, 10);//10
CLASS_DECLARATION_S_BIT(unsigned __int64, Test2, 7);//17
unsigned __int64 Test3:4;
CLASS_DECLARATION_S_BIT(unsigned __int64, Test4, 8);//29
CLASS_DECLARATION_S_BIT(unsigned __int64, Test5, 4);//33
CLASS_DECLARATION_S_BIT(unsigned __int64, Test6, 8);//41
CLASS_DECLARATION_S_BIT(unsigned __int64, Test7, 4);//45
CLASS_DECLARATION_S_BIT(unsigned __int64, Test8, 8);//53
CLASS_DECLARATION_S_BIT(unsigned __int64, Test9, 4);//57
CLASS_DECLARATION_S_BIT(unsigned __int64, Test10, 1);//58
CLASS_DECLARATION_S_BIT(unsigned __int64, Test11, 1);//59
CLASS_DECLARATION_S_BIT(unsigned __int64, Test12, 1);//60
CLASS_DECLARATION_S_BIT(unsigned __int64, Test13, 1);//61
CLASS_DECLARATION_S_BIT(unsigned __int64, Test14, 1);//62
CLASS_DECLARATION_S_BIT(unsigned __int64, Test15, 2);//64
__int64 Field_1()const{return *(((__int64 const*)(this))+0);}
void Field_1(__int64 const &kValue){*(((__int64*)(this))+0) = kValue;}
}TestInfo;
我就到现在这是什么底部两行Field_1做题? 有人可以请解释给我,谢谢
最后两行看起来像'offsetof()'宏人的变化。 – PaulMcKenzie
@PaulMcKenzie我认为这只是一种方式来访问所有字段打包在一个int64_t(通过akward reinterpret_casting) – Frank