たとえば、バッファに挿入する必要があるconstバイナリデータがあります
char buf[] = "1232\0x1";
しかし、バイナリデータが最初は以下のような場合はどうすればよいですか
char buf[] = "\0x11232";
コンパイラはそれを大きな16進数のように見ますが、私の目的は
char buf[] = {0x1,'1','2','3','2'};
コンパイル時の文字列連結を使用できます。
char buf[] = "\x01" "1232";
ただし、後に 2 桁の数字を使用すると、次の文字列が\x
なくても機能します。
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
2 バイトまたは 4 バイト形式で記述する必要があります。
\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"