Шестнадцатеричное перечисление ИЛИ целочисленное (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];
Другие вопросы по тегам