Warum ergänzernder Buchstabe hinter Var-Init.?
-
Warum wird eine Variablen Initialisierung immer mit dem entsprechenden Typen-Buchstaben ergänzt ?
Beispiel:
long lValue = 0L; // L ??...warum? // oder: float fValue = 0.0F // F ??...warum?Danke für Erklärungen im voraus
-
0L bedeutet, dass es sich um einen long-Wert handelt (sonst wäre es ein int-Wert).
0.0F bedeutet, dass es sich um einen float-Wert handelt (sonst wäre es ein double-Wert).
-
Ist ja eigentlich nicht nötig, oder?
-
LinuxFan
Würde ich nicht umbedingt sagen, gibt einige Stellen an denen man froh ist es zuhaben, z. B. um sich einen Cast zu ersparen.
-
Also bei der Initialisierung ist es nicht nötig und mit Sicherheit auch nicht "immer" vorhanden wie der OP meint. Im Gegenteil hab ich das in solchem Kontext eigentlich noch nie gesehen.
Was die Verwendung in Berechnungen etc. betrifft gebe ich Patrick recht.
-
Ok vertehe was ihr meint, aber soweit war ich shcon...
was macht denn der Compiler genau (technisch gesehen) ?
Was für Fehlermöglichkieten gibt es ?n bissl Hintergund..!!
-
ja und... schrieb:
n bissl Hintergund..!!
http://www.kuzbass.ru:8086/docs/isocpp/lex.html#lex.icon
http://www.kuzbass.ru:8086/docs/isocpp/lex.html#lex.fcon
-
Stell dir mal folgendes Szenario vor:
du hast eine überladene Funktion
void foo(short x); void foo(long x);Und du rufst jetzt die Funktion auf mit
foo(10);Dein Compiler wird dir jetzt 'ne Fehlermeldung bringen, weil er nicht weiss, welche Funktion er nehmen soll.
void foo(int x);gibt's ja nicht.
Also musst du schon explizit angeben, welche Funktion du meinst.
Entweder mit Cast
foo(short(10))oder halt mit einem entsprechenden Suffix
foo(10L)