C では、「char」、「signed char」、「unsigned char」が「int」、「signed int」、「unsigned int」とは異なる扱いを受けるのはなぜですか?

Barbara Streisand
リリース: 2024-10-26 22:37:03
オリジナル
274 人が閲覧しました

Why are `char`, `signed char`, and `unsigned char` Treated Differently from `int`, `signed int`, and `unsigned int` in C  ?

Char!=(Signed Char), Char!=(Unsigned Char)

C プログラミングでは、char、signed char、unsigned char は別個のデータ型とみなされます。 。この動作は、int と signed int が同じ型であり、unsigned int が別の別の型である整数とは異なります。

質問:

なぜ以下のコードは、char 型と int 型ではコンパイル方法が異なりますか?

cout << getIsTrue< isX<int8>::ikIsX  >() << endl;
cout << getIsTrue< isX<uint8>::ikIsX  >() << endl;
cout << getIsTrue< isX<char>::ikIsX >() << endl;
ログイン後にコピー

答え:

C は、char、signed char、unsigned char を 3 つの異なる型として区別します。これが、char、int8、および uint8 のテンプレートのインスタンス化が異なる理由です。

ただし、整数の場合、int と signed int は同じ型ですが、unsigned int は異なる型です。これが、int、int32、および uint32 のテンプレートのインスタンス化で一意のテンプレートが 2 つだけになる理由です。

標準の [basic.fundamental](https://eel.is/cdraft/basic.fundamental) には次のように記載されています。 :

「Plain char、signed char、unsigned char は 3 つの異なる型です。」

これは、実装に応じて、異なるオブジェクト表現があり、異なる値の範囲を持つことができることを意味します。

以上がC では、「char」、「signed char」、「unsigned char」が「int」、「signed int」、「unsigned int」とは異なる扱いを受けるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!