[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