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