Heim > Backend-Entwicklung > C++ > Hauptteil

Warum werden „char', „signed char' und „unsigned char' in C anders behandelt als „int', „signed int' und „unsigned int'?

Barbara Streisand
Freigeben: 2024-10-26 22:37:03
Original
274 Leute haben es durchsucht

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)

In der C-Programmierung werden char, signiertes Zeichen und unsigniertes Zeichen als unterschiedliche Datentypen betrachtet . Dieses Verhalten unterscheidet sich von Ganzzahlen, bei denen „int“ und „signed int“ vom gleichen Typ sind und „unsigned int“ ein anderer separater Typ ist.

Frage:

Warum ist das so? Der folgende Code wird für char-Typen anders kompiliert als für int-Typen?

cout << getIsTrue< isX<int8>::ikIsX  >() << endl;
cout << getIsTrue< isX<uint8>::ikIsX  >() << endl;
cout << getIsTrue< isX<char>::ikIsX >() << endl;
Nach dem Login kopieren

Antwort:

C unterscheidet zwischen char, signiertem char und unsigniertem char als drei separate Typen. Aus diesem Grund sind die Vorlageninstanziierungen für char, int8 und uint8 unterschiedlich.

Bei Ganzzahlen sind int und signiertes int jedoch vom gleichen Typ, während unsigned int ein anderer Typ ist. Aus diesem Grund führen die Vorlageninstanziierungen für int, int32 und uint32 nur zu zwei eindeutigen Vorlagen.

Der Standard [basic.fundamental](https://eel.is/c draft/basic.fundamental) besagt :

„Plain char“, „signed char“ und „unsigned char“ sind drei verschiedene Typen.“

Das bedeutet, dass sie unterschiedliche Objektdarstellungen haben und je nach Implementierung unterschiedliche Wertebereiche haben können.

Das obige ist der detaillierte Inhalt vonWarum werden „char', „signed char' und „unsigned char' in C anders behandelt als „int', „signed int' und „unsigned int'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!