1. ホーム
  2. c

[解決済み] charはデフォルトでsignedかunsignedか?

2022-04-20 08:58:50

質問

C"コンプリート・リファレンス』には、次のように書かれています。 char はデフォルトで符号なしです。

しかし、私はこれをVisual StudioだけでなくGCCでも検証しようとしています。それは、それを 符号付き をデフォルトで使用します。

どちらが正しいのでしょうか?

解決方法は?

この本は間違っています。 規格では、プレーンな char は符号付きか符号なしかを指定します。

実は、この規格では3つの異なるタイプが定義されています。 char , signed char および unsigned char . もし、あなたが #include <limits.h> を見て、その後に CHAR_MIN であれば、プレーンな charsigned または unsigned (もし CHAR_MIN が0より小さいか0に等しい)、その場合でも この3つのタイプは、それぞれ を、規格の範囲内で行う。

以下の点に注意してください。 char はこのように特殊です。もし、変数を int と宣言したのと100%同じです。 signed int . これは、すべてのコンパイラとアーキテクチャに常に当てはまります。