Dalsi zahada v C -> Prevod long int na string

Petr Tomasek tomasek na etf.cuni.cz
Úterý Červenec 26 09:53:43 CEST 2011


On Tue, Jul 26, 2011 at 09:10:43AM +0200, Kamil Rezac wrote:
> 2011/7/26 Petr Tomasek <tomasek at etf.cuni.cz>:
> >> >     } while ((n /= radix)>  0);
> >> >
> >> >to lze daleko jednoduseji zapsat jako:
> >> >     } while (n /= radix);
> >>
> >> Je to pravda, ale je to opat formalne nespravne. Vysledok vyrazu nie je
> >> logicka hodnota.
> >
> > V c-cku je kazdy vyraz zaroven logickou hodnotou, neni duvod
> > to "formalne" psat jinak.
> 
> Kdyz to vidim, jen mala nesouvisejici vlozka (bez kridelek), moc se to
> nevi, ale vysledek logickeho vyrazu (porovnani) nemusi byt nutne vetsi
> nez 0, jen ruzne od 0 (je to zavisle na implementaci, na skole nam
> rikali, ze byl prekladac, ktery mel "true" o hodote -1 (0xff....ff).
> Ale v praxi jsem zatim "true" !=1 nepotkal. Prirazeni ma hodnotu
> prirazovane hodnoty a plati to taky. Takze treba podminka if (i=-123)
> {} je splnena, jen vetsinou prekladac hodi warning.
> 
> KR

Mate pravdu, proto jsem taky predtim psal neco o "unsigned" ;-)

P.T.

-- 
Petr Tomasek <http://www.etf.cuni.cz/~tomasek>
Jabber: butrus at jabbim.cz

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
EA 355:001  DU DU DU DU
EA 355:002  TU TU TU TU
EA 355:003  NU NU NU NU NU NU NU
EA 355:004  NA NA NA NA NA
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~




Další informace o konferenci Hw-list