2013-01-05, 19:11
  #61
Medlem
Citat:
Ursprungligen postat av christery
Ser inte behovet av fanstyget. sista goto jag använde var i basic som följde med DOS.

Tänk igenom vad som skall göras så slipper man hopp. Behöver man hoppa så tjorvar man bara till det. Vill inte tillbaka till spagettiprogrammeringen.

Använder ni globala variabler åxå när ni kan (större scope än nödvändigt)

Jo det är en utopi - men den är i alla fall min

Behovet har väl framkommit väldigt bra i den här tråden.

Det är inte bara goto som hoppar i C/C++-syntaxen. Vill man programmera "rent" strukturellt (vad det nu är), finns det nog fler saker man måste undvika. Prova t.ex. att sluta med break, som kan hoppa ur en loop varifrån som helst, och skriv istället kod som alltid lämnar loopen i botten av den. Och sluta använda return i mitten av funktioner, och returnera bara i botten av dem.
Citera
2013-01-06, 01:34
  #62
Medlem
christerys avatar
Citat:
Ursprungligen postat av patwotrik
Är du här och sprider fördomar nu?

Mja, visdomar förmodar jag. goto och globala variabler ska bara utrotas. Vill man pilla med det så skaffa ett lägre programspråk.

men good catch patwotrik
Citera
2013-01-06, 01:39
  #63
Medlem
christerys avatar
Citat:
Ursprungligen postat av 770310
Behovet har väl framkommit väldigt bra i den här tråden.

Det är inte bara goto som hoppar i C/C++-syntaxen. Vill man programmera "rent" strukturellt (vad det nu är), finns det nog fler saker man måste undvika. Prova t.ex. att sluta med break, som kan hoppa ur en loop varifrån som helst, och skriv istället kod som alltid lämnar loopen i botten av den. Och sluta använda return i mitten av funktioner, och returnera bara i botten av dem.

Här är jag helt med dig. Sen ifall folk (som jag, sloppy men blir bättre) skriver funktioner som ryms på en skärmbild. Mina slutar alltid på 2 A4 sidor.. tragiskt.

Men jag är inte död ännu, skall bara iväg en sväng till indien och ladda.
Citera
2013-01-06, 04:13
  #64
Medlem
MeanMEs avatar
Citat:
Ursprungligen postat av christery
Mja, visdomar förmodar jag. goto och globala variabler ska bara utrotas. Vill man pilla med det så skaffa ett lägre programspråk.

men good catch patwotrik

Utrota globalvariabler !?!

LOL
Du skulle ha sett den bastardkoden man skrev i demos/promos i min ungdom...
Allt som kunde spara några klockcykler för att kunna pressa ut maximal grafisk prestanda var tillåtet. Hittade ett program för några år sedan där jag utvecklat ett par loopar tror det var 640 * 480 / 16 ggr för att få ut max prestanda på effekten jag ville ha, jag orkade inte räkna raderna...

Och dokumentation...
Tror jag hade en eller två anmärkningar om vad som evt behövde optimeras ytterligare resten var ju självklarheter... Yaa right...
Citera
2013-01-06, 04:50
  #65
Medlem
christerys avatar
Citat:
Ursprungligen postat av MeanME
Utrota globalvariabler !?!

LOL
Du skulle ha sett den bastardkoden man skrev i demos/promos i min ungdom...
Allt som kunde spara några klockcykler för att kunna pressa ut maximal grafisk prestanda var tillåtet. Hittade ett program för några år sedan där jag utvecklat ett par loopar tror det var 640 * 480 / 16 ggr för att få ut max prestanda på effekten jag ville ha, jag orkade inte räkna raderna...

Och dokumentation...
Tror jag hade en eller två anmärkningar om vad som evt behövde optimeras ytterligare resten var ju självklarheter... Yaa right...


Jag gillar dig skarpt, köra lite asm i C koden för att tjäna några ms. blev det lite senare, dokumentation är för dom som överlever eller hur vi nu tänkte då.

Varför inte hacka allt i MASM, min polare hävdar fortfarande (fast han gillar fortran90 åxå så skum kille) att det är lika lätt.

vem fan sätter sig och skriver nåt i makroassembler idag. tja förutom han då.

Nu har jag två nya favvos, du och patwotrik. Tja vi "kände varann" tidigare.
Citera
2013-04-16, 18:04
  #66
Medlem
Citat:
Ursprungligen postat av Ergodyne
En lite fråga vad ni tycker om att använda goto när man skriver c++

Jag fick alltid lära mig att man aldrig aldrig aldrig ska använda goto när man skriver c eller framförallt c++. Men på senare tid har jag stött på kod som använder det ganska flitigt.

Skillnaden är iofs att dessa goto-satser inte hoppar runt i programmet så mycket utan snarare ser till att man flyttar sig förbi vissa rader bara.

Följande är ett exempel på hur en kodsnutt kan se ut:

[PHP]
int SomeFunction(int parameter)
{
int retVal = FALSE;

if (!Initiate())
goto ERROR_END;

if (!AllocateMemory())
goto ERROR_END;

if (!RunAnalysis())
goto ERROR_END;

return TRUE;

ERROR_END:

ReleaseMemory();
return FALSE;

}
[/PHP]

Skulle man skriva detta med if-satser så blir det ju mycket mer nästlat och antag att man gör ännu fler kontroller så skulle det till slut bli oläsbart.

Så kan man i detta fall tycka att det är ok att använda goto?

Skulle gå att skriva allt detta med en if-sats, men jag förstår poängen, och den löses med en try-funktion:

[PHP]
static int SomeFunctionTry(int parameter);

int SomeFunction(int parameter)
{
if (!SomeFunctionTry(parameter)) {
ReleaseMemory();
return FALSE;
}
return TRUE;
}

static int SomeFunctionTry(int parameter)
{
if (!Initiate())
return FALSE;
if (!AllocateMemory())
return FALSE;
if (!RunAnalysis())
return FALSE;
return TRUE;
}

[/PHP]

Vanligtvis borde AllocateMemory och liknande funktioner ta en void ** som argument (som då SomeFunction måste ange som parameter till SomeFunctionTry) vilket sedan ReleaseMemory får städa upp om nödvändigt. Kan inte komma på något tillfälle då Try-patternet inte skulle fungera.
Citera
  • 5
  • 6

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in