表示一个16字节的变量

时间:2010-05-14 14:45:44

标签: c++

我必须将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字节字段?

谢谢,

巴比

5 个答案:

答案 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>