Unterschied zwischen Cast und explizitem Konstantentyp

17/12/2009 - 10:40 von Frank Terbeck | Report spam
Hallo.

Gibt es einen Unterschied zwischen:

float f;
f = (float)1.234;

und

float f;
f = 1.234f;

Natürlich sind das verschiedene Konstrukte. Was mich jedoch
interessiert ist, ob es für den erzeugten Code einen Unterschied
macht falls man die eine oder die andere Form nutzt.

Ich habe das ganze mit gcc 4.3 ausprobiert und der erzeugte
Assemblercode ist mit diesem Compiler exakt gleich. Nun frage ich
mich ob der C Standard garantiert, daß ein '1.234f' immer àquivalent
zu '(float)1.234' ist oder ob ich nur mit der von mir genutzten
Implementierung "Glück" gehabt habe.

Gruß Frank

There are no threads in alt.binaries.pictures.erotica,
so there's no gain in using a threaded news reader.
 

Lesen sie die antworten

#1 Rainer Weikusat
17/12/2009 - 14:46 | Warnen spam
Frank Terbeck writes:
Gibt es einen Unterschied zwischen:

float f;
f = (float)1.234;

und

float f;
f = 1.234f;

Natürlich sind das verschiedene Konstrukte. Was mich jedoch
interessiert ist, ob es für den erzeugten Code einen Unterschied
macht falls man die eine oder die andere Form nutzt.

Ich habe das ganze mit gcc 4.3 ausprobiert und der erzeugte
Assemblercode ist mit diesem Compiler exakt gleich. Nun frage ich
mich ob der C Standard garantiert, daß ein '1.234f' immer àquivalent
zu '(float)1.234' ist



Ja. Im gegebenen fall ist allerdings beides ueberfluessig und

float f;
f = 1.234;

haette denselben Effekt.

Ähnliche fragen