C: switch
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: C: switch
Nötig... nein.nufan hat geschrieben:Ist im default-Block denn noch ein break notwendig? Es gibt keine Funktionen, die danach noch ausgeführt werden könnten.
Trotzdem sollte da einer sein, denn ein break zuviel schadet nicht... mal eins vergessen ist in C eine beliebte Fehlerquelle.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: C: switch
Ist das nicht von Compiler zu Compiler verschieden? Bei meinem wird zB komplett ohne breaks die kompletten nachfolgenden case-Anweisungen ausgeführt. Aber wie schon gesagt: Eins zuviel schadet ja nichtXin hat geschrieben:Nötig... nein.nufan hat geschrieben:Ist im default-Block denn noch ein break notwendig? Es gibt keine Funktionen, die danach noch ausgeführt werden könnten.
Trotzdem sollte da einer sein, denn ein break zuviel schadet nicht... mal eins vergessen ist in C eine beliebte Fehlerquelle.

Re: C: switch
Das soll ja auch so sein. Es geht ja hier nur um den 'default'-Block. Und da er der letzte Block ist, kann man das 'break' ruhig weglassen, weil ja nachher sowieso kein Block mehr kommt der ausgeführt werden könnte.nufan hat geschrieben: Ist das nicht von Compiler zu Compiler verschieden? Bei meinem wird zB komplett ohne breaks die kompletten nachfolgenden case-Anweisungen ausgeführt.
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at
- Dirty Oerti
- Beiträge: 2229
- Registriert: Di Jul 08, 2008 5:05 pm
- Wohnort: Thurndorf / Würzburg
Re: C: switch
Es zeigt sich mal wieder:
Programmierer sind faule Menschen^^
Programmierer sind faule Menschen^^

Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
Ich helfe gerne!

----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
Re: C: switch
Wie kommst du denn da draufDirty Oerti hat geschrieben:Es zeigt sich mal wieder:
Programmierer sind faule Menschen^^

Aber es ist auch so üblich in den 'default' Block kein 'break' hinein zu tun, denn es macht ja den Code weder lesbarer noch sonst irgendwas nützliches...
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
C:Switch
<edit by Xin>Zusammengefügt aus einem anderen Thread, bei dem ich wohl das eine oder andere übersehen habe
</edit>
Hallo nufan,
zum einen bitte einen Diskussionsthread erzeugen und im Wiki einen Link auf den Thread setzen, wenn Du eine neue Seite eröffnest, damit das auch Leuten bewußt wird, die nicht wie ich die letzten Änderungen verfolgen.
Zur Diskussion:
Der Artikel gefällt mir gut.
Dennoch möchte ich auf einige Dinge hinweisen, die Du vielleicht noch einarbeiten kannst.
* Die Einleitung ist recht kurz, Du könntest dort vielleicht etwas mehr auf das Problem eingehen, dass Switch löst.
* Du kannst ausschließlich auf Konstanten in case vergleichen und das hat einen guten Grund: der Kompiler vergleicht nicht mit ==, sondern er kann so HashTables anlegen oder eine binäre Suche, oder irgendwas, was ihm einfällt, um möglichst schnell an die cases zu gelangen. Es ist damit eben nicht so, dass bei 10 cases man (mit einem guten Compiler) auch 10 Abfragen benötigt, um an den 10. case zu kommen.
* "Anweisungsblock" erscheint mir passender für "Programmpaket"

Hallo nufan,
zum einen bitte einen Diskussionsthread erzeugen und im Wiki einen Link auf den Thread setzen, wenn Du eine neue Seite eröffnest, damit das auch Leuten bewußt wird, die nicht wie ich die letzten Änderungen verfolgen.
Zur Diskussion:
Der Artikel gefällt mir gut.

Dennoch möchte ich auf einige Dinge hinweisen, die Du vielleicht noch einarbeiten kannst.
* Die Einleitung ist recht kurz, Du könntest dort vielleicht etwas mehr auf das Problem eingehen, dass Switch löst.
* Du kannst ausschließlich auf Konstanten in case vergleichen und das hat einen guten Grund: der Kompiler vergleicht nicht mit ==, sondern er kann so HashTables anlegen oder eine binäre Suche, oder irgendwas, was ihm einfällt, um möglichst schnell an die cases zu gelangen. Es ist damit eben nicht so, dass bei 10 cases man (mit einem guten Compiler) auch 10 Abfragen benötigt, um an den 10. case zu kommen.
* "Anweisungsblock" erscheint mir passender für "Programmpaket"
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: C:Switch
Der Artikel ist nicht von mir
Das Original stammt glaube ich von Metamorph (zumindest hat er ihn vor mir zuletzt bearbeitet).
Ich habe ihn heute nur noch ein klein wenig überarbeitet.
Hier jedenfalls der Link:
http://tutorial.proggen.org/doku.php?id=c:switch
Lg

Das Original stammt glaube ich von Metamorph (zumindest hat er ihn vor mir zuletzt bearbeitet).
Ich habe ihn heute nur noch ein klein wenig überarbeitet.
Hier jedenfalls der Link:
http://tutorial.proggen.org/doku.php?id=c:switch
Lg
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: C:Switch
Schweigen wir einfach darüber, wer ihn geschrieben hat... es ist lange her, da gab's noch nicht die Diskussionsthreads, ich ändere ihnnufan hat geschrieben:Der Artikel ist nicht von mir![]()
Das Original stammt glaube ich von Metamorph (zumindest hat er ihn vor mir zuletzt bearbeitet).
Ich habe ihn heute nur noch ein klein wenig überarbeitet.
Hier jedenfalls der Link:
http://tutorial.proggen.org/doku.php?id=c:switch

Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.