Hallo zusammen,
ich möchte Funktionsaufrufe von dem Wert einer Variable abhängig machen,
um mir lange if-Abfragen zu ersparen.
Hat die Variable X den Wert 0, soll Func1 aufgerufen, hat sie den Wert
1, soll Func2 aufgerufen werden, etc.
Wie kann ich das am besten anstellen?
Viele Grüße
Dennis
Dennis schrieb:> Hallo zusammen,>> ich möchte Funktionsaufrufe von dem Wert einer Variable abhängig machen,> um mir lange if-Abfragen zu ersparen.> Hat die Variable X den Wert 0, soll Func1 aufgerufen, hat sie den Wert> 1, soll Func2 aufgerufen werden, etc.>> Wie kann ich das am besten anstellen?
Mit einem Array von Funktionszeigern
http://www.mikrocontroller.net/articles/FAQ#Funktionszeiger
@ Paul Baumann (Gast)
>Gibt es bei der Sprache C keine Select-Case Funktion?
Sicher, nur dass die dort switch heißt ;-)
Ist aber für größere Mengen an Funktionen unübersichtlicher und in der
Ausführung langsamer.
MfG
Falk
Für Freunde kompakter Schreibweisen bietet C99 die Möglichkeit, das
Funktionspointerarray direkt mit in den Aufruf zu packen. Wem die
Schreibweise zu kryptisch ist (Alternative 1), kann den Aufruf auch
durch Makros etwas verschönern (Alternativen 2 und 3):
Hi
>Aha. Vielleicht ist C doch nicht so unbrauchbar, wie ich dachte...
Doch. Man kann damit wunderbar Probleme lösen, die man ohne C nicht
hat.;-)
MfG Spess
O.T.
Für mich brauchte die Welt nur aus Pascal-Programmierern zu bestehen.
Das liegt schahr-weinlich daran, daß ich Algol als erste Sprache gelernt
habe. Ich weiß nicht, was sich die "C"-Erfinder dabei gedacht haben,
alle verfügbaren Sonderzeichen im Quelltext zu verhackstücken...
:-(
MfG Paul
@ Paul Baumann (Gast)
>habe. Ich weiß nicht, was sich die "C"-Erfinder dabei gedacht haben,>alle verfügbaren Sonderzeichen im Quelltext zu verhackstücken...>:-(
Naja, C ist halt ein Kind der 70er, da war man mit dem LSD noch im
breiten Versuchsstadium . . . ;-)
Paul Baumann schrieb:> Das liegt schahr-weinlich daran, daß ich Algol als erste Sprache gelernt> habe.
Da hätte ich noch ein Schmuckstück von 1962 im Regal liegen...
LSD? War das nicht das Zeug, nach dessen Einnahme man Deckenlampen ohne
Leiter wechseln konnte?
;-)
Herr Meier gab Kollegin Schmidt
Lysergsäure-diethyl-amid
Frau Schmidt schwebt rosa durch den Raum,
Herr Meier, -ja der fasst es kaum...
MfG Paul
@Klaus
Klasse! Heb das gut auf,-in ein paar Jahren werden sich die Leute wieder
damit befassen, wenn sie die Orientierung im Wirrwarr der heutigen
Programmiersprachen vollends verloren haben.
(Das meine ich ausnahmsweise mal ernst)
MfG Paul
Klaus Wachtler schrieb:> Klar halte ich das in Ehren.> Alleine schon, weil es von der Zuse KG ist.
Und vor allem, weil es der Herr Baumann geschrieben hat!
Paul, ist das "R." ein Druckfehler, oder stammt das Werk gar nicht von
dir, sondern von einem Bruder oder Vater?