Was ist ein Suffix?
-
Ich habe mir gerade ich ein Buch zugelegt und da steht etwas von "Suffix" und man kennzeichnet sie mit (l,ll,L,LL) aber wie wende ich sie an und was bedeutet das?
Gruß
-
Ein Suffix steht dahinter.
Damit kannst du die Größe von Zahlenliteralen festlegen.
Mit 32L legst du fest, das 32 ein long ist.
-
Was bedeuetet die Zahl 32? Soll das einfach eine Variable sein? Kann man mit einem Suffix eine Variable erstellen, oder hat das etwas mit den Bits zutun, dass
32 Bits ein Long ist und es so benutzt wird um längere Zahlen darstellen zu können?
-
32
ist ein Literal, keine Variable. In dem Fall vom Typint
. Hingegen ist32l
ein Literal vom Typlong
.
-
Ganz einfach: Mit Suffixen legst du den Typ des Literals fest. ll=long long, ull = unsigned long long, usw.
Seit C++11 kannst du übrigens auch selber Suffixe definieren.
-
Und was ist ein Literal in dem Zusammenhang?
-
int i = 42; // 42 ist ein Literal vom Typ int long j = 43; // 43 ist ebenfalsl ein Literal vom Typ int, wird aber vor Zuweisung in einen long konvertiert long k = 44l; // 44l ist ein Literal vom Typ long, also keine Konvertierung nötig
-
Letzte Frage. Wie ist das mit der Konvertierung gemeint?
-
Skeptar schrieb:
Und was ist ein Literal in dem Zusammenhang?
Ich habe mir extra die Mühe gemacht, dir einen Wikipedia-Link herauszusuchen...
Skeptar schrieb:
Letzte Frage. Wie ist das mit der Konvertierung gemeint?
Lies weiter in deinem Buch, das hat keinen Sinn hier. Wir erklären gerade grundlegendstes C++.
-
Ich habe den Link nicht gesehen
Dann werde ich wohl weiter lesen
-
Ich habe den Link nicht gesehen
Dann werde ich wohl weiter lesen
-
Du kannst diese Literale benutzen, um in Berechnungen den Wertebereich zu vergrößern.
(ich gehe in dem Beispiel mal von 16-Bit
int
aus, da so der Wertebereich übersichtlicher ist (-32787 .. +32767)int f = 5000 * 20 / 38;
Alle Zahlen dort sind int. Da kommt es schon bei 5000 * 20 zu einem Überlauf.
Um das zu verhindern, lässt man die Berechnung inlong
machen. Dazu reicht es, dass ein Faktor vom typlong
ist.In C wird das auch oft im Zusammenhang mit Makros gemacht.
#define ANZAHL 5000L #define LAENGE 20 #define ZEIT 38 int v = ANZAHL * LAENGE / ZEIT ;