[elektro] C mégegyszer (SWITCH)

SZIGETI Szabolcs szigi at ik.bme.hu
Wed Apr 7 13:53:49 CEST 2010


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]
> 



More information about the Elektro mailing list