2017-01-26 3 views
0

in C-Sprache definiert ist, unter Verwendung von wenn ich einen Wert mit #define definieren zB:Aktualisieren des Wertes einer Variablen, die in #define c

#define STATE 1 

kann ich den Wert von STATE weiter in dem Programm-Update ? Wenn es möglich ist, sag mir wie?

+1

dass keine Variable ist. Sie sollten lesen, wie der C-Präprozessor funktioniert. – Olaf

Antwort

0

Der Präprozessor ist ein Textersetzungssystem. Mit anderen Worten, wenn Sie das Symbol STATE an anderer Stelle in Ihrem Programm verwenden, wird es durch seine Definition ersetzt (1).

Zum Beispiel, wenn Sie schreiben:

printf("%d\n", STATE); 

Der Präprozessor ersetzt STATE mit 1 und was der Compiler tatsächlich "sieht" ist:

printf("%d\n", 1); 

Wenn Sie STATE zu aktualisieren, um zu versuchen waren innerhalb C-Code erhalten Sie Fehler bei der Zuweisung zu einem R-Wert.

Wenn Sie Zustand neu definieren wollen innerhalb der Prä-Prozessor, könnten Sie tun:

#define STATE 1 
#undef STATE 
#define STATE 2 
+1

Ein solcher Code ist sehr gefährlich und gilt als schlecht, wenn er außerhalb von Codezeilen verwendet wird. Es ist auch nicht klar, was OP ohne weitere Informationen will. – Olaf

Verwandte Themen