十六进制枚举或整数(ASCII)枚举来填充字节数组?
Posted
技术标签:
【中文标题】十六进制枚举或整数(ASCII)枚举来填充字节数组?【英文标题】:Hexadecimal enumeration OR integer (ASCII) enumeration to fill a byte array with? 【发布时间】:2014-10-20 17:34:56 【问题描述】:我需要通过可能的枚举来填充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;
那么,对于我的枚举是否应该包含十六进制或整数或其他类型的数据,是否有任何建议?
谢谢!
【问题讨论】:
【参考方案1】:在您的情况下,无论您将如何组织您的enum
。两种方法都可以,结果是一样的。
【讨论】:
感谢您的回答。 +1【参考方案2】:没关系。你的两个枚举:
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];
【讨论】:
感谢您的回答。 +1以上是关于十六进制枚举或整数(ASCII)枚举来填充字节数组?的主要内容,如果未能解决你的问题,请参考以下文章