我想知道这在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};
答案 0 :(得分:1)
正如编译器告诉你的那样,你不能以你试图做的方式做你想做的事。
请注意,您可以使用:
unsigned char message[] = "\x00\x00Hello world";
但需要非常小心,因为:
unsigned char message[] = "\x00\x00Byebye world";
的第二个字节包含\xB
或\013
,第三个字节为y
。十六进制转义符停止在第一个不是十六进制数字的字符处(因此"\x00Babaganoush"
在十六进制转义符中有六位数字;并且有很多拼写方法' Babaganoush')。