多くのテキストは、整数としての値の処理は移植性がないことを警告していchar
ます。たとえば、「A」の値が65であると仮定します(ASCIIの場合のように)。
しかし、この文字セットがASCII(または拡張形式)なのか、それとも他の文字セットなのかを決定するものは何でしょうか。それはオペレーティングシステムによって決定されますか、それともコンパイラによって決定されますか?これはハードウェアに依存していないと思います。
たとえば、Intel PCは(理論的には)EBCDICなどの文字セットを持つことができますか?またLANG
、Linux / Unixで環境変数を変更すると、Cプログラムの基本文字セットの値が変更される可能性がありますか(再コンパイルされた場合)?
(編集:Linuxのさまざまな非ラテン文字セットがすべて同じ基本ASCIIコードを持っていることがわかります。たとえば、KOI8-U -ASCIIと互換性のない文字セットを持つバリエーションがあると思いました)