OT - Prosim o radu s C

Jiri Foldyna jiri.f@avizo.cz
Úterý Srpen 29 20:54:05 CEST 2006


Dobry vecer,

> Asi bychom si meli sjednotit definice.
> Tvrdim, ze Cckove
>
> int a[10];
> if( i<10)
> {
>          cosi s a[i];
>
>          nejaky dalsi cosi s a[i]
>
>          a este neco s a[i]
> }
> else
> {
>          //neco rozumnyho
> }
>
> je spravne.
>
> Kdezto to, co je v pascalu a o com se tady furt mluvi, tj.
>
> pristup na a[i] - a 'automaticky' runtime 'buch', kdyz je i >=10

Vidim, ze jste Pascalem nepoliben :-)

Zdrojak, ktery jste uvedl vyse, implementuje range-check, ktery se v Pascalu
da direktivou kompilatoru ve zdrojaku prubezne zapinat/vypinat. Krome toho
muzete samozrejme pouzit globalni nastaveni pro range-check. Jediny rozdil
je v tom, ze misto Vaseho else pouzijete osetreni Exception. A samozrejme,
uplne stejny postup muzete pouzit i v Pascalu, s tim, ze si range-check
vypnete.

> >Toto tvrzeni je v kontextu diskuse logicky chybne.
> Nedokazuje totiz, ze
> >programator s fantazii, ktery se na nic vedome nevyprdne,
> run-time check
> >nepotrebuje.
>
> Tvrdite, ze v tomto kusu:
> if( a > rozumna_hodnota )
> {
> }
> else
> {
> }
>
> je neco, kde je potreba runtime check?

Nikoliv, v tomto konkretnim priklade ne (samozrejme pokud je definovana
konstanta rozumna_hodnota). Ale napr. pokud volate externi proceduru/funkci,
kde limity indexu neznate (neboli neznate konstantu rozumna_hodnota), je
nanejvys vhodne osetreni vyjimky pouzit. Stejne tak v pripade dynamickych
poli nebo pointerovych operaci nad cizimi buffery.

> >Preji minimum uteklych stacku a pretecenych poli v budoucim
> programatoskem
> >zivote :-)
>
> Nemam. Daleko horsi nocni mura je hadani se s uzivatelema. Ti
> nam to kazej :o)

Pod to se podepisuji.

Zdravim

Jiri Foldyna





Další informace o konferenci Hw-list