Ausgabe von #define - Wert
-
Hallo,
ich habe eine eventuell dumme Frage - habe schon etwas hier im Forum gesucht, aber bin nicht auf eine Lösung gestoßen.
Folgende Situation:
... #define Channel_1 (0) #define Channel_2 (1) volatile int ChannelSelect=Channel_1; ...
Die Variable ChannelSelect ändert nun im Programmverlauf mehrmals ihren Wert zwischen Channel_1 und Channel_2. An gewissen Stellen möchte ich eine Ausgabe des aktuellen Wertes machen - allerdings will ich nicht "0" oder "1" angezeigt bekommen, sondern das ausgeschriebene "Channel_1" bzw. "Channel_2".
printf ("StartConversion %d",ChannelSelect);
...gibt z.B. nur 0 und 1 aus.
Ist zwar nur ein kosmetisches Problem, aber gibt es da eine einfache Möglichkeit, ohne Nutzung zusätzlicher Variablen?
Danke für alle Ideen!
alerte
-
alerte schrieb:
Ist zwar nur ein kosmetisches Problem, aber gibt es da eine einfache Möglichkeit, ohne Nutzung zusätzlicher Variablen?
Nein. Du würdest eher eine zusätzliche Funktion benötigen, die aus dem Wert wieder den String ermittelt.
Nach dem Durchlauf des Präprozessors tauchen die Zeichenketten Channel_1 und Channel_2 nämlich überhaupt nicht mehr in deinem Code auf, deswegen geht es nicht ohne zusätzichen Code.
-
struct Schanell
{
char name[16];
int value;
};
-
Vielen Dank,
dann werde ich mit den 1en und 0en leben müssen, was aber auch kein großer Beinbruch ist - es geht sowieso nur um eine Kontrollausgabe, die später wieder herausgenommen wird.
-
struct Schanell
{
char name[16];
int value;
};Ist eher nicht sinnvoll, weil man den Namen bei jeder Änderung des Wertes ändern müsste. Also lieber eine lookup-Tabelle.
-
klar, dann brauchste nur die lookup table zu ändern
LOL
-
Zum Glück diskutiere ich ja nurmehr mit Regs...
-
na dann ist ja gut