Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
グローバル配列を定義するために非ASCII文字を使用する場合、たとえば次のようになります。
const char table[] = {[L'č'] = 'c', ...};
したがって、Cは、ロケールを変更してから、それらのインデックスを介して配列にアクセスする状況を処理しますか?これはどのようにコンパイルされますか?なぜなら'č'、エンコーディングが異なれば価値も異なるからです。
'č'
コンパイラは、ソースコード内の文字を、ソースコードエンコーディングから、コンパイル時に選択される実行ワイド文字セットに変換する必要があります。その場合、値は、そのエンコーディングでその文字が何であれ、整数値を持つ定数になります。toを呼び出しsetlocale()ても、値には影響しません。
setlocale()