【问题标题】:Hexadecimal enumeration OR integer (ASCII) enumeration to fill a byte array with?十六进制枚举或整数(ASCII)枚举来填充字节数组?
【发布时间】:2014-10-20 17:34:56
【问题描述】:

我需要通过可能的枚举来填充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;

那么,对于我的枚举是否应该包含十六进制或整数或其他类型的数据,是否有任何建议?

谢谢!

【问题讨论】:

    标签: c arrays hex byte unsigned-char


    【解决方案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
    猜你喜欢
    • 2018-06-21
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 1970-01-01
    • 2015-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多