我想看看这在 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};
最佳答案
正如编译器告诉您的那样,您无法以您尝试的方式执行您尝试的操作。
请注意,您可以使用:
unsigned char message[] = "\x00\x00Hello world";
但需要相当小心,因为:
unsigned char message[] = "\x00\x00Byebye world";
第二个字节包含 \xB
或\013
第三个字节是 y
。十六进制转义符在第一个不是十六进制数字的字符处停止(因此 "\x00Babaganoush"
在十六进制转义符中有六位数字;并且有很多拼写“Babaganoush”的方法)。
关于c - 如何在无符号数组 char 中组合字符和数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26044265/