1. ホーム
  2. c++

[解決済み] なぜ'A'という文字は0x41と比較されるのでしょうか?

2023-04-04 19:01:22

疑問点

C++のコードを見ていたら、以下のような構成が見つかりました。

if('A' == 0x41) {
  // ...
} else if('A' == 0xc1) {
  // ...
} else {
  // ...
}

を取得します。 ビジュアルスタジオ という警告が表示されます。

警告 C4127 条件式が定数です。

Visual Studioは明らかに正しいです。確かに'A'は0x41と定義されています。3 つの分岐のうち 2 つがデッド コードであることを考えると、著者はなぜこのコードを書いているのでしょうか?

どのように解決するのですか?

0xc1EBCDIC の文字セットコードです。 A . 作者はこのようなマシンでテストしています。

http://www.ibm.com/support/knowledgecenter/en/SSGH4D_15.1.3/com.ibm.xlf1513.aix.doc/language_ref/asciit.html