如何将枚举类型映射到字符数组?

时间:2017-04-27 07:48:14

标签: arrays c++11 enums char

我是TCP上的TCP-IP通信。 我有特定的数据包要查询,然后我收到一个基于此的响应。 我的数据包基本上是一个字符数组,我将其转换为字符串,如下所示:

unsigned char array1 []={0,132,0,0,0,6,84,5,0,1,255,0}; 
std::string load_seqInit ( array1, array1 + sizeof array1 / sizeof array1[0] );

但是,我想将这些数组分别存储为枚举值。这样我就可以调用enumtype,它将映射到我各自的数组。

enum packets{
    LOAD,
    READ,
    RESET,
    UNLOAD      
}

因此,当我调用枚举类型LOAD时,它会指向数据包:

unsigned char array1 []={0,132,0,0,0,6,84,5,0,1,255,0};

然后我可以将枚举转换为字符串并继续查询和响应。

1 个答案:

答案 0 :(得分:0)

如果数组大小为8个字节,则可以执行以下操作:

class enum packets : unsigned long {
    LOAD = 0x1234567812345678, // the hex representation of the array
    ...
}

如果不是,你可以使用从枚举值映射到数组的std::map<packets, array[]>来实现更天真的实现。