例如,我有需要插入缓冲的 const 二进制数据
char buf[] = "1232\0x1";
但是当二进制数据最初如下所示时怎么办
char buf[] = "\0x11232";
编译器把它看成一个很大的十六进制数,但我的目的是
char buf[] = {0x1,'1','2','3','2'};
您可以使用编译时字符串连接:
char buf[] = "\x01" "1232";
\x
但是,在没有以下情况下也可以使用 2 位数字:
char buf[] = "\x011232";
您可以通过组合相邻的字符串来创建单个字符串文字 - 编译器会将它们连接起来:
char buf[] = "\x1" "1232";
相当于:
char buf[] = {0x1,'1','2','3','2', 0}; // note the terminating null, which may or may not be important to you
您必须以两字节或四字节格式编写它:
\xhh = ASCII character in hexadecimal notation
\xhhhh = Unicode character in hexadecimal notation if this escape sequence is used in a wide-character constant or a Unicode string literal.
所以在你的情况下你必须写"\x0112345"