十六进制枚举或整数(ASCII)枚举用于填充字节数组?

时间:2014-10-20 17:34:57

标签: c arrays hex byte unsigned-char

我需要用可能的枚举用c语言填充字节数组。

这是我如何声明我的字节数组:

unsigned char byteArray[6];

现在我犹豫是否应该看起来像MyEnum1MyEnum2

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

答案 0 :(得分:2)

在您的情况下,无论您如何组织enum。你可以用两种方式做到,结果也是一样的。

答案 1 :(得分:1)

没关系。你的两个枚举:

enum MyEnum1 { A1 = 0, B1 = 1, C1 = 2};
enum MyEnum2 { A2 = 0x00, B2 = 0x01, C2 = 0x02}; 

严格等同,正如int i = 0x5int i = 5严格相同。如果你想使用常数的十进制或十六进制表示,这取决于你。

BTW代替:

unsigned char byteArray[6];
你可能应该:

enum MyEnum1 byteArray[6];