( igoor | 2013. 02. 16., szo – 08:52 )

Igen, benned van a hiba, legalabbis, ha ugy gondolod, hogy a ket kodreszlet egyenerteku. Ez egy felveteli beszelgetesen egy beugro kerdes lenne, maximum 1 perces gondolkodasi idoven: "Adjon egy ekvivalens megoldast a kovetkezo kodreszletre, goto hasznalata nelkul ... Kesz? Ertem, koszonjuk, hogy jelentkezett."

Mig a goto elleni leggyakoribb erv, hogy spagetti kodot eredmenyezhet es ezert eleve szamuzni kell, most akaratlanul bar, de bebizonyitottad, hogy bizonyos esetekben, nem is olyan egyszeru "kivaltani". Na de mi a baj te megoldasoddal? Az, hogy nem lepsz ki a ciklusbol, ha mas a hibakod. Igy a ket kod nem egyenerteku. Az elsoben egyetlen egy esetben van "ciklus", nevezetesen, ha a rendszerhivast egy interrupt megszakitja. A masodikban viszont egeszen addig, amig a fuggveny hibaval ter vissza, a ciklus lefut. Ha viszont teletuzdeled break-ekkel a kododat, nyomban nem 2-3 sornal jarunk, hanem x-nel, a hibakezeles bonyolultsagatol fuggoen (egyebkent, egy kod olvashatosaga nem a tomorsegetol fugg, ezt talan nem kell reszleteznem). Persze, berakhatsz egy break-et a ciklus vegere, bizonytalansagban tartva a kod olvasojat, hogy mi is tortenik majd meg, ez kulonosen akkor megteveszto, ha kozben mar a hibakezeles reszekent felszabaditasz eroforrasokat, amik a rendszerhivas elofelteteleinek szamitanak. Hat ettol aztan nem lesz olvashatobb a kod, de meg csak rovidebb sem. A ciklus utolso soraig ott marad a bizonytalansag, hogy a ciklus megint lefut.

De most oszinten, miert logikusabb azt irni, hogy:
- ezt a fuggvenyt addig hivom, amig hibaval ter vissza, ha ezzel a hibaval, akkor tenyleg hivom, minden mas esetben viszont tulajdonkeppen nem is.
mint:
- ezt a fuggvenyt addig hivom, amig ezzel a hibaval ter vissza, minden mas esetben megyek tovabb.

ui:
1. A pelda nem az errno-val bizonyitja a goto letjogosultsagat, pusztan egy valos pelda, az errno helyen allhatna mas is. Mar az is elgondolkoztato, hogy ezt egyaltalan ide kell irnom.
2. a C-re vonatkozo megjegyzesed nem lehet komolyan venni, sajnalom. A C-nek nincsennek hulyesegei. A kepzetlen es trehany C programozoknak vannak hulyesegei. A nyelv erejet pont az egyszerusege adja, arra es ott kell hasznalni, amire valo.