以任何方式终止十六进制条目而不使用空格

-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-好像它承担的十六进制继续下去,直到和非0F遇到.

pmg*_*pmg 5

使用字符串连接

unsigned char code ID_Data_02[8] = "\x02" "1234567";
Run Code Online (Sandbox Code Playgroud)

请注意,ID_Data_02不是字符串:它没有空间用于终止零字节.与大多数str*函数一起使用它会调用UB.