C ユーザーズガイド

ワイド文字

複数バイト文字の処理で不都合が発生した場合は、すべての文字を一定のバイト数またはビット数にすることで解決できることがあります。このような文字セットには何千または何万もの表意文字があるため、これらすべてを保持するには、大きさが 16 ビットまたは 32 ビットの整数値を使用しなければなりません (完全な中国語には 65,000 以上もの表意文字があります)。ANSI C には、拡張文字セットのすべてを保持するために十分な大きさを持つ実装定義の整数型として、typedefwchar_t があります。

各ワイド文字には、それに対応する複数バイト文字があります (その逆もあります)。つまり、通常の 1 バイト文字に対応するワイド文字は、その 1 バイト値と同じ値を持つ必要があります (ヌル文字も含む)。しかし、マクロ EOFchar として表現できないように、マクロ EOF の値が wchar_t に格納できるかどうかは保証されていません。