cas a 32-bit platformy

Ing. Miloslav Ponkrác postovni.holub na atlas.cz
Čtvrtek Červen 15 09:57:59 CEST 2000


>> 4) operátor sizeof neříká, kolik bajtů má daný typ, ale kolikrát je
větší,
>> než char. To nemusí být shodné s bajtem, viz předchozí bod 3.
>>
>
>Coze? Sizeof nevraci velikost v bajtech? Tak to je pro mne neco noveho.
>Schvalne jsem se stavil v knihkupectvi a treba v D.Louis,P. Mejzlik, M.
Virius
>- Jazyk C a C++ podle normy ANSI/ISO (Kompletni kapesni pruvodce)
>je napsano ze sizeof() vraci hodnotu v bajtech...


Podle normy operator sizeof vraci, kolikrát je délka větší, než délka
objektu typu char. Prakticky ale máte dost malou šanci se setkat s tím, že
char by nebyl jeden bajt, ale teoreticky (a sem tam velice zřídka hlavně
dříve i prakticky) může být char jinak dlouhý. Potom samozřejmě se překladač
C drží normy a sizeof vrací něco jiného, než bajty.

Dost mě mrzí, když čtu různé knihy o C, kde jsou někdy tvrzeny věci, které
jsou sice ve většině případů pravda, ale v normě je to jinak.

Hodně problémů lidem také například působí tvrzení, že ukazatelel a pole v C
jsou totéž, přičemž v mnoha běžných případech se chovají odlišně. Což člověk
po nějaké době s C, a hlavně s C++ pochopí, a nebo naseká neuvěřitelně chyb.

Miloslav Ponkrác









Další informace o konferenci Linux