[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
[an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]![]() |
![]() |
![]() |
|||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
![]() |
![]() |
![]() |
> Jeg synes ikke at et ekstra flag Tre flags. Og det er kun tre fordi overflødige fd's ikke bliver lukket med det samme. Ellers er det 6 + en del flere if'er hist og pist. > ekstra label. Det er bare to måder at gøre det samme på. Men se > længere nede. Ikke helt, flags bruger hukommelse og ekstra kode. Ser du programmet som en tilstandsmaskine med N tilstande, så øger et ekstra flag tilstandsmængden til 2*N (dog kan mange ekstra tilstande som regel trækes sammen). Goto's som brugt her er derimod bare en tilstandsovergang. > Opsplitning i funktioner ser jeg slet ikke som et trick, men som et mål i > sig selv når der er så meget kode. Ok, trick er ikke det rigtige ord, men ellers bliver vi nok ikke enige her, hverken med målsætning eller udsagnet om, at det er meget kode. Og så tvivler jeg da også på, at det er den sande målsetning, du fremfører her: Du har splittet funktionen op, fordi du stort set er tvunget til det, ikke fordi der er meget kode. Ellers havde du da også splittet do_parent funktionen op. Ikke sandt? Havde vi det at gøre med en mindre funktion, ville du også være nød til at splitte denne op. Så argumentet tæller ligesom ikke rigtigt i vores sammenhæng. > Men da goto ikke virker på tværs af > funktioner, må de jo afskaffes. Jeg er enig med dig i, at hvis man endelig begynder på at splitte op på grund af funktionslængden og samtidig akzepterer flags, så er det rigtigt, at eliminere goto's. > Ups, det har du ret i. > Ups, ja. > jeg undrer mig dog over at du ikke lukker de overflødige fd'er i child > Og så vidt jeg kan se bliver flag_* sat til 1 Ups Ups For mange ups'er til et simpelt problem => kode for kompliceret? Anyway, der var da underholdende at se på de forskellige approaches og nu kan folk da også vælge, hvad der passer best til deres æstetiske fornemmelse. Og så er det jo nok diskussioner som denne her, der har affødt idéen med exception handling, som alle mig bekendte nyere sprog har taget op. Hans-Christian Stadler
![]() |
![]() |
![]() |
||||||||||||
|
||||||||||||||
![]() | ||||||||||||||
|
||||||||||||||
![]() |
![]() |
![]() |