ceckovy kviz

Tomáš Hamouz konfery.tomas.hamouz na seznam.cz
Úterý Září 5 16:13:00 CEST 2023


K C je třeba přistupovat tak, že to je jen komfortní assembler.

Typický problém Pascalisty je pochopit, že typ char je znaménkový a
že to neznamená znak, ale jen velikost registru (tedy proměnné).
Typický problém Céčkaře je pochopit že pole není pointer.

Že jsou typové kontroly přínosné už někteří Céčkaři také pochopili, a
proto třeba Clang umí od sebe odlišit různé enumerované typy, ale
kvůli kompatibilitě standardně generuje jen warningy.

Tomáš


>
> Když vidím, s čím tu všichni bojujete, tak mám pocit, že jsem dělal
> dobře, že jsem se bránil jazyku C v jakékoli podobě. Nakonec mě
> stejně dostihl v podobě nutnosti udělat program pro Arduino.
> Uznávám, že zápis je velmi úsporný. Například 
> i++; 
> nenapíšete asi v žádném jiném jazyku úsporněji. Na druhou
> stranu.... Použili jste někdy někdo zápis 
> if (A=B) {};
> a přitom je syntakticky správně. Kompilátor pochopitelně nic
> nehlásí a já nemohl pochopit, proč program nefunguje. Holt zvyk z Pascalu, že tak je to dobře.
> Nebo třeba to, že typ char obsahuje znaménko a tudíž porovnání
> nefunguje. Nebo že v řetězci nesmí být 0x00.
> V krátkém, jednoduchém programu je asi to, že můžete porovnat
> cokoli s čímkoli (když víte jak) a konverzi typů většinou neřešíte,
> vlastnost, která zkracuje zápis. Ale zásadně zvyšuje pravděpodobnost
> chyby. Já vím, Pascal je užvaněný a begin-end asi je opravdu horší,
> než {}, ale úžasné je, že pokud chcete přiřadit k sobě něco, co k
> sobě nepatří, musíte to zcela jasně říct, jinak je to syntaktická chyba.
> Nechci vyvolat flame, ale co je na C tak úžasné? (Fakt mě to pouze
> zajímá, protože na to nemohu přijít)
> Martin Záruba



Další informace o konferenci Hw-list