-1 c non-ascii-characters keil
KEIL 9.55
这有效:
unsigned char code ID_Data_02[9]="\x02 1234567";
Run Code Online (Sandbox Code Playgroud)
但我真正想要的是:
unsigned char code ID_Data_02[8]="\x021234567";
Run Code Online (Sandbox Code Playgroud)
在第一种情况下,我只是使用传输*(p+0),然后*(p+2)忽略描述十六进制与ASCII组件的空白区域.
有人知道更整洁的东西吗?
K&R定义\x,表示1个或多个十六进制char秒-尝试\2x02-好像它承担的十六进制继续下去,直到和非0对F遇到.
使用字符串连接
unsigned char code ID_Data_02[8] = "\x02" "1234567";
Run Code Online (Sandbox Code Playgroud)
请注意,ID_Data_02它不是字符串:它没有空间用于终止零字节.与大多数str*函数一起使用它会调用UB.