[elektro] C cast kérdés
István Vomberg
vomberg at chemotron.hu
Sun Apr 5 23:02:32 CEST 2009
Tudtommal a / jel az helyből lebegőpontos osztást jelent akkor is, ha
egész típusú amiket osztasz.
Mindenesetre kerekítési határok környékén így érhetik meglepetések az
embert.
Az pedig, hogy a PIC24-es fordítóban nem megy a double-ra castolás, hát
érdekes. Akkor is, ha "csak" optimalizálva.
De ha a long long kell, akkor mindegyik változót castold arra, az a
legbiztosabb. Igaz, hogy 20 éve Pascallal, de ezt úgy beszoptam, hogy
egy hónapig csak ezt a hibát vadásztam. Azóta castolok mindent ha
ilyesmi helyzet van.
hg12345 írta:
> Megnéztem, optimalizáció után nem látom milyen kódot generál, de hogy nem müködik az biztos.
>
> Optimalizáció nélkül jó az eredmény. A forditó GNU C 4.03 alapú PIC24-s.
>
>
>
> Direkt irtam, hogy nem akarom lebegöpontos müveletekket, és nem a sebesség miatt.
>
> Szerintem fixpontos változók esetén nem számolhat belül lebegöpontos osztással az biztos!
>
>
> "István Vomberg" <vomberg at chemotron.hu> írta:
>
>
>
>
>
>> Ha nem időkritikus a futás, akkor én double-ra castolnám _mindegyik_
>> változót és long-ra az egészet.
>>
>> e = (long)(((double)m1 * (double)m2 ) / (double)div);
>>
More information about the Elektro
mailing list