Frage zu char Typen
-
SeppJ schrieb:
Schreib ein signed oder unsigned davor und alle sind sich einig. Ist dann ganu wie bei integer erwartet.
Naja ... mein Punkt war halt der, dass kein signed oder unsigned davor stand. Und dass sfgd vorschlug, man solle mit char genauso rechnen, wie mit anderen int-Typen. Die Ausgabe meines Beispiels wäre aber undefinert.
BTW: Ist char laut Standard wirklich ein int-Typ? Oder bloß als int-Typ verwendbar bzw. in einen konvertierbar?
Stefan.
-
Was ist Deine Definition von "int-Typ"?
Wenn man mit char oder short rechnen will, wird zumindest eine "Promotion" durchgeführt. Das heißt, chars und shorts werden vorher zu int konvertiert, bevor "gerechnet" wird.
Eine Seite, die auch gerne verlinkt wird, ist diese hier: Integer Types in C and C++.
Gruß,
SP
-
DStefan schrieb:
BTW: Ist char laut Standard wirklich ein int-Typ? Oder bloß als int-Typ verwendbar bzw. in einen konvertierbar?
char ist laut Standard ein int Typ.
-
DStefan schrieb:
Die Ausgabe meines Beispiels wäre aber undefinert.
Nicht undefiniert, sondern implementierungsabhängig. Wichtiger unterschied!
DStefan schrieb:
BTW: Ist char laut Standard wirklich ein int-Typ? Oder bloß als int-Typ verwendbar bzw. in einen konvertierbar?
Laut Standard werden
bool,wchar_t,charund allesignedundunsignedInteger Typenintegral typesgenannt. Ein Synonym für integral type ist integer type.
float,double,long doubleund alle integer types nennt man auch arithmetic types (wichtig für Operationen).Grüssli
-
volkard schrieb:
hustbaer schrieb:
volkard schrieb:
Ab 64 ist long=64 und int=32
MSVC ist hier glaube ich anderer Meinung.
Mist. Ich verwende MSVC nicht. Wie ist da bei 64-Bit-Builds int und long?
ist bei 32 und 64 bit builds gleich: int = 32 bit, long = 32 bit, long long = 64 bit