G
.,- schrieb:
Das f für float ist nur dazu da, kennzuzeichnen, dass es sich bei dem Wert um eine float-Zahl handelt (ungarische Notation, wenn ich mich nicht irre). Also nutzlos.
Gast288 schrieb:
Das f macht die Zahl zu einem float-Typ, also 4 Bytes. Ohne f werden 8 Bytes gespeichert und bei der Zuweißung wird konvertiert. Bei floats also immer f an die Zahl hängen sonst wir mehr Speicher pro Zahl verwendet und es muss konvertiert werden.
Beides fehlerhaft.
Das f hat weder etwas mit UN zu tun, noch werden ohne "8 Bytes gespeichert" .
Ein Ganzzahlliteral ist per default vom Typ int. Das f Suffix sorgt einfach dafür, dass daraus ein Literal vom Typ float wird. Somit muss der Compiler bei der Zuweisung keine extra Umwandlung von int nach float durchführen und es gibt auch keinen Genauigkeitsverlust, der uU entsteht. Und Speicher wird hier überhaupt nicht verbraucht. Ein Literal ist ein compilezeitkonstanter Ausdruck und benötigt somit keinen Speicher, auf dem der Wert abgebildet werden muss. Ob du die diversen Suffixe für Literale nutzt, ist letztendlich dir überlassen. Ich schreibe sie grundsätzlich nicht, weil eine evtl. Umwandlung bei der Kompilierung erfolgt und somit keine Laufzeit kostet. Zudem finde ich es ohne Suffixe lesbarer. Und der Compiler meckert sowieso, falls Genauigkeit verloren geht. Und dann kann man es ja immer noch hinschreiben.