[elektro] C mégegyszer (SWITCH)
Xorn
toth.endre at gmail.com
Wed Apr 7 20:53:37 CEST 2010
Bioznyitott teny, hogy tetszoleges algoritmus megirhato goto nelkul.
Azt pedig a gyakorlati elet bizonyitja, hogy ettol marhara nem lesz se
szep, se jo, es foleg nem hatekony egy program. :-)
En is csinaltam mar olyat, hogy tucatnyi rovid szubrutinka vegerol nem
egy abszolut ugrassal mentem vissza a ciklus elejere, hanem relativ
ugrasokkal az elozo rutinka vegere, mert hiany volt memoriabol, es igy
3 helyett csak 2 byte volt az ugras. De attol ez meg nem szep, nem jo,
nem attekintheto es nem is gyors.
Best regards,
Andy
2010/4/7 fabi <fabilist at gmail.com>:
> 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]
>>
>
> -----------------------------------------
> elektro[-flame|-etc]
>
More information about the Elektro
mailing list