1

たとえば、バッファに挿入する必要があるconstバイナリデータがあります

 char buf[] = "1232\0x1";

しかし、バイナリデータが最初は以下のような場合はどうすればよいですか

 char buf[] = "\0x11232";

コンパイラはそれを大きな16進数のように見ますが、私の目的は

 char buf[] = {0x1,'1','2','3','2'};
4

3 に答える 3

4

コンパイル時の文字列連結を使用できます。

char buf[] = "\x01" "1232";

ただし、後に 2 桁の数字を使用すると、次の文字列が\xなくても機能します。

char buf[] = "\x011232";

于 2012-05-15T07:25:00.037 に答える
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
于 2012-05-15T07:31:12.743 に答える
1

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"

于 2012-05-15T07:26:42.947 に答える