Hallo zusammen. Ich habe da mal eine Frage bzgl. C, die ich mit einem
Beispiel verdeutlichen will.
Ein uC hat 10 LEDs als Ausgänge angeschlossen. Eine Zahl (mittels UART
empfangen) soll bestimmen, welche LED ihren Zustand wechseln soll. Also
kommt die Zahl 0 soll die LED0 von An auf Aus bzw. von Aus auf An gehen.
In C würde ich also schreiben:
1 | switch(empfangenesByte){
|
2 | case '0': LED0 = ~LED0;
|
3 | break;
|
4 | ....
|
5 | }
|
In PHP gibt es die Möglichkeit den Variablennamen mittels eines Strings
zu bestimmen. Dort ginge es so:
1 | $varName = "LED" . $empfangenesByte;
|
2 | $$varName ~= $$varName;
|
In PHP wird eine normale Variable mit einem $ geschrieben. Mit $$varName
wird der Inhalt von $varName benutzt, um den eigentlichen Variablennamen
zu erzeugen.
Es ist nicht nur kürzer, sondern auch geschwindigkeitstechnisch
konstant.
Gibt es so eine Möglichkeit der Variablennamenbestimmung auch in C? Oder
kann man diese Aufgabe eleganter als mit einem switch-case lösen?