我有const二进制数据,我需要插入缓冲区 例如
char buf[] = "1232\0x1";
但是当二进制数据最初如下所示时怎么做呢
char buf[] = "\0x11232";
编译器将其视为一个大十六进制数 但我的意图是
char buf[] = {0x1,'1','2','3','2'};
答案 0 :(得分:4)
您可以使用编译时字符串连接:
char buf[] = "\x01" "1232";
但是,在 \x
后面有一个2位数字,它也可以不用:
char buf[] = "\x011232";
击> <击> 撞击>
答案 1 :(得分:3)
您可以通过组合相邻字符串来创建单个字符串文字 - 编译器将连接它们:
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
答案 2 :(得分:0)
您必须以两字节或四字节格式写入它:
\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"