[elektro] C mégegyszer (SWITCH)
fabi
fabilist at gmail.com
Wed Apr 7 20:49:40 CEST 2010
A struktúrált programozók zsigerből gyűlölik a goto-t, pedig a való
világ nem csak gyönyörűen algoritmizálható feladatokból áll.
Egy jó helyen alkalmazott, megfelelően kommentezett goto akár
egyszerűbbé, átláthatóbbá tehet egy programot.
Főleg beágyazott rendszereknél, ahol inkább cél a valós események
logikus lekövetése mint az elvont algoritmizálás, szerintem bátran
alkalmazható a goto, persze nem ész nélkül ide oda ugrálva, azt majd
megcsinálja a fordító optimalizáláskor...
---
üdv,
fabi
SZIGETI Szabolcs írta:
> Hali!
>
> A goto-val semmi baj. Viszont szerintem ha még valaha bele akarsz nyúlni a
> kódba, akkor ne csinálj ilyen varázslásokat. Én már régóta az gondlom, hogy
> manapság kódot nem elsősorban írunk, hanem olvasunk. (Én pl. törekszem arra,
> hogy a switchben minden case utáb legyen break, mert úgy logikus és
> áttekinthető a működése. Ha mégis, akkor hatalmas kommentben írom, hogy
> átcsorgás van.)
>
> A mostani optimalizáló fordítók úgyis jobb kódot csinálnak (általában), mint
> amiket mindenféle trükközéssel tudunk kézzel (sőt, a szabvány megoldásokat
> nagyobb eséllyel optimalizálják), viszont ha neked, vagy bárki másnak később
> bele kell nyúlni akár hibakeresés, akár továbbfejlesztés céljából,
> beleőrülhetsz, mire kibogozod, hogy egy fél éve mit írtál.
>
> Szabolcs
>
>
> --------------------------------------------------
> From: "hg12345" <hg12345 at freemail.hu>
> Sent: Wednesday, April 07, 2010 11:39 AM
> To: <elektro at tesla.hu>
> Subject: [elektro] C mégegyszer (SWITCH)
>
>> Hi!
>>
>> Létezik C-s megoldás a SWITCH-en belül egy ág végrehajtása után egy
>> meghatározott CASE ágon folytassa a program a futását?
>>
>> switch(a){
>> case 1:
>> break;
>>
>> case 4:
>> printf("4");
>> goto "DEFAULT";
>> case 8:
>> break;
>>
>> case 38:
>> printf("38");
>>
>> default:
>> a=0;
>> break;
>> };
>>
>> Nem ez a program, de a default ágban van a programnak defenziv része, azok
>> az ágak amik befejeződtek, itt szeretném befejezni.
>>
>> Az automatikusan definiált ASM címkékkel nem lehet mit kezdeni .Lxxx nem
>> egyértelmű a megnevezése
>>
>> Természetesen megoldható egy plusz CIMKE bevezetésével, de egy C szerű
>> megoldásnak jobbak örülnék.
>>
>> -----------------------------------------
>> elektro[-flame|-etc]
>>
>
> -----------------------------------------
> elektro[-flame|-etc]
>
More information about the Elektro
mailing list