У меня есть некоторые перечисления, которые представлены сериями шестнадцатеричных значений следующим образом:
enum someEnum
{
NameA = 0x2121,
NameB = 0x2223,
NameC = 0x2020
};
Я хочу добавить одно из этих перечислений в QByteArray следующим образом:
QByteArray anArray;
anArray.append(NameA);
Но при таком подходе выдается предупреждение
implicit conversion from 'int' to 'char' changes value from 8481 to 33.
На самом деле, даже если я делаю следующее:
anArray.append(static_cast<char>(NameA));
, оно добавляет только 0x21 (в десятичном формате 33).
Я также пытался сделать следующее:
const char * t = reinterpret_cast<char*>(NameA);
anArray.append(t, sizeof(t));
, но это приводит к ошибке сегментации.
Конечно, я мог бы сделать следующее без потери значения или сбояили любая другая проблема:
anArray.append(0x21);
anArray.append(0x21);
Но я не хочу этого, я хочу напрямую добавить перечисление.Не могли бы вы предложить правильный способ сделать это?
Большое спасибо.