2

PNG 仕様を読んだ後、少し驚きました。文字リテラルは、(プログラマーにとって使いやすい) 'A' ではなく、0x41 のようなバイナリ値でハードコーディングする必要があることを読みました。問題は、基になる文字セットが異なる異なるシステムでのコンパイル中に、文字リテラルが異なる方法でエンコードされることです。

友人に尋ねて C++ 標準 (ISO/IEC 14882:1998/e) を読みましたが、会話がコンパイルに使用するシステムに依存するか、固定文字セット (アスキー) 今まで?

回答ありがとうございます。

4

1 に答える 1

4

'A'プログラマー向けのバージョンは、文字定数がターゲット環境に対して適切にエンコードされていることを確認する唯一の方法です。0x41 を使用すると、値が 65 のみになることが保証されます。

EBCDIC システムはありがたいことにまれであり、ますますまれになっているため、この区別はいくつかの点でかなり学術的です。しかし、理解できるプログラムは意味のあるものであり、可能な限り自然に書かれています。抽象的ではありません。

于 2011-06-30T06:13:09.573 に答える