Angenommen, ich habe (in meinen Augen nicht als Code) eine Statussache mit einem Integer-Array der Größe n verknüpft.
int array[n] = {0,0,1,0,1,0,1,0,1,.......}
. (nur 0 und 1 in diesem Array)
Status '0' bedeutet 'gesperrt' in meinem Kontext. In ähnlicher Weise bedeutet "1" "freigeschaltet". Ich will das jedes Mal, ich drucke die Variable, z. int array[3]
, ich möchte seinen Status als String und nicht den tatsächlichen Wert der Variablen ausgeben.Wie wird ein Variablenwert einer angegebenen Zeichenfolge zugeordnet?
Wie mache ich das? Gibt es eine Möglichkeit, ich kann 0
mit "locked" und 1
mit "entriegelt" ersetzen?
P.S. - Ich möchte kein weiteres Array mit dem Datentyp string erstellen oder einfach eine if-else-Gleichung einfügen. Hilfe mit Makros wird sehr geschätzt.
'puts ((char * [2]) { "verriegelt", "entriegelt"} [!! array [3]]);' ist ein Start einer using _compound literal_. – chux
'puts (" entriegelt "+ 2 *! Array [3]);' –
'#define show_lock (b) ((b)?" Entriegelt ":" locked ")' und dann show_lock ausgeben (array [n]) mit 'printf()', 'fputs()' oder was immer du bevorzugst. –