Шестнадцатеричное перечисление ИЛИ целочисленное (ASCII) перечисление для заполнения байтового массива?
Мне нужно заполнить байтовый массив на языке c возможными перечислениями.
Вот как я объявляю свой байтовый массив:
unsigned char byteArray[6];
И теперь я сомневаюсь, должны ли мои перечисления выглядеть MyEnum1
или же MyEnum2
:
enum MyEnum1 { A1 = 0, B1 = 1, C1 = 2};
enum MyEnum2 { A2 = 0x00, B2 = 0x01, C2 = 0x02};
Цель примерно такая:
byteArray[0]=A1;
byteArray[1]=B1;
byteArray[2]=C1;
byteArray[3]=A2;
byteArray[4]=B2;
byteArray[5]=C2;
Итак, есть ли какие-либо рекомендации о том, должны ли мои перечисления содержать шестнадцатеричные или целые числа или другой тип данных?
Спасибо!
2 ответа
Решение
В твоем случае не важно, как ты организуешь enum
, Вы можете сделать это обоими способами, и результат будет одинаковым.
Это не важно Ваши два перечисления:
enum MyEnum1 { A1 = 0, B1 = 1, C1 = 2};
enum MyEnum2 { A2 = 0x00, B2 = 0x01, C2 = 0x02};
строго эквивалентны, так же, как int i = 0x5
строго эквивалентно int i = 5
, Вам решать, хотите ли вы использовать десятичные или шестнадцатеричные представления ваших констант.
И кстати вместо:
unsigned char byteArray[6];
вы, вероятно, должны иметь:
enum MyEnum1 byteArray[6];