如何在无符号数组char中组合字符和数字

时间:2014-09-25 17:07:56

标签: c

我想知道这在C代码中是否真的可行。

unsigned char message[] = {0x00,0x00,"Hello world"};

我想强制在同一阵列中使用一些固件来获取0x00以外的字符。它有:

unsigned char message[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

已写入其中。我希望它采取其他角色,因为这两个都是可能的:

unsigned char message[] = "Hello world";

unsigned char message2[] = {0x00,0x00,0x00};

我有一个存储UART字母的缓冲区,我想与

结合使用
 unsigned char message2[] = {0x00,0x00,0x00};

1 个答案:

答案 0 :(得分:1)

正如编译器告诉你的那样,你不能以你试图做的方式做你想做的事。

请注意,您可以使用:

unsigned char message[] = "\x00\x00Hello world";

但需要非常小心,因为:

unsigned char message[] = "\x00\x00Byebye world";

的第二个字节包含\xB\013,第三个字节为y。十六进制转义符停止在第一个不是十六进制数字的字符处(因此"\x00Babaganoush"在十六进制转义符中有六位数字;并且有很多拼写方法' Babaganoush')。