我必须将16字节字段表示为数据结构的一部分:
struct Data_Entry
{
uint8 CUI_Type;
uint8 CUI_Size;
uint16 Src_Refresh_Period;
uint16 Src_Buffer_Size;
uint16 Src_CUI_Offset;
uint32 Src_BCW_Address;
uint32 Src_Previous_Timestamp;
/* The field below should be a 16 byte field */
uint32 Data;
};
我如何将“数据”字段表示为16字节字段而不是当前的4字节字段?
谢谢,
巴比
答案 0 :(得分:12)
uint8 Data[16];
有什么不对吗?
答案 1 :(得分:8)
使用数组:
struct Data_Entry
{
uint8 CUI_Type;
uint8 CUI_Size;
uint16 Src_Refresh_Period;
uint16 Src_Buffer_Size;
uint16 Src_CUI_Offset;
uint32 Src_BCW_Address;
uint32 Src_Previous_Timestamp;
/* The field below should be a 16 byte field */
uint32 Data[4];
};
答案 2 :(得分:4)
我很难相信你希望这个16字节字段是一个标量整数。 在奇怪的事件中,int16B就是你想要的(对于一个fotonic枚举器应用程序,观察宇宙),你需要将它定义为一个类,制作适当的存储(见下文),重载每个算术运算符,以便很好地利用它它
如果你想要一个16字节的同名名称,不使用算术,请使用
uint8 Data[16];
答案 3 :(得分:2)
尝试一下这些:
uint8 Data[16];
或
uint16 Data[8];
或
uint32 Data[4];
或
uint64 Data[2]; // uint64 may not be available on all platforms
或者您可以使用std::vector
代替上面的数组。
答案 4 :(得分:1)
您也可以使用boost::bitset<128>
。