Dalsi zahada v C -> Prevod long int na string

Milan B. milan na bastl.sk
Úterý Červenec 26 10:10:24 CEST 2011


On 26.7.2011 9:02, Petr Tomasek wrote:
>
> V c-cku je kazdy vyraz zaroven logickou hodnotou, neni duvod
> to "formalne" psat jinak.
>

Dovody tu su. Auditovatelnost, zrozumitelnost, dokazatelnost spravnosti, 
spravovatelnost - vysledkom coho moze byt a vacsinou je vyssia kvalita.

Presny zapis, vyjadrujuci presne zamer je dost dolezity. Nedavno som 
videl takyto test, ci ma znak nastaveny 8-my bit (realny pripad, 
softtware publikovany na webe):

char c;
if (c<0) ...

Tymto zapisom nehovorim, ze chcem otestovat 8-my bit, tymto zapisom 
hovorim, ze chcem zistit, ci hodnota 8-bitoveho cisla je mensia ako 0. 
Sice to funguje a za danych okolnosti je test v poriadku, ale ....

... jedneho dna sa niekto rozhodne zmenit typ c na unsigned char a tuto 
blbu podmienku prehliadne alebo si neuvedomi jej dosledky (hlavne ak je 
schovana o 78 riadkov dalej) ...


Sice su to jednoduche veci, ale su to veci ktore sa lahko prehliadaju - 
a prave taketo "prehliadnutia" tvoria vacsinu chyb v programoch. A 
formalne spravny zapis z nich dokaze eliminovat znacne mnozstvo.

A to nehovorim o typovej cistote.

Ono programovanie nie je len o tom, naucit sa jazyk...

-m-

> P.T.
>



Další informace o konferenci Hw-list