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