[elektro] C cast kérdés
potyo
potyo.ada at gmail.com
Sun Apr 5 18:44:40 CEST 2009
Szerintem fordítótól függ, hogy pontosan mit csinál az optimalizálás
(felismeri-e, hogy az első tényezőnek a felső négy bátja nulla, és azzal nem
számol). De a kényszercastolást kötelező megcsinálnia, tehát az eredmény
mindenféleképpen jó lesz, csak a lefutási idő a kérdéses. A C18 a char x
char esetben teljes 16 x 16 bites szorzást csinált az egyik tényező
castolása után.
2009/4/5 hg12345 <hg12345 at freemail.hu>
> long m1,m2,div,e;
>
> Adott a következő müvelet:
>
> e = ( m1 * m2 ) / div ;
>
> a feinti müvelet sor eredménye elég sok esetben kétes, de ha egy kis
> kiegészitést teszek:
>
> e = (m1 * (long long) m2) / div ;
>
> akkor hibatlannak kell lennie !
>
> igy elméletileg a többi változót kényszer cast-olja a C vagy csak én
> goldolom igy, és mi történik optimalizáció után?
>
> Ezt hogyan oldják meg C berkeken belül.
>
> Nem akarok float és más lebegöpontos számításokat és nem szeretnék
> átmenetileg se egy Long Long tipusú változót.
>
> Üdv
>
More information about the Elektro
mailing list