#define
ist eine Präprozessordirektive von C geerbt, die die Form
#define identifier value
Im Allgemeinen nimmt, wird es verwendet, um die Präprozessor anweisen, alle Instanzen von identifier
im Code mit dem angegebenen Text zu ersetzen, bevor es beim Passieren an den Compiler. Bezeichner können auch ohne Werte definiert werden, die als Compilerflags verwendet werden, um mehrere Definitionen derselben Variablen zu verhindern oder um auf Maschinendetails zu verzweigen, die sich während der Ausführung nicht ändern. Zum Beispiel anhand verschiedenen Code an den Compiler weitergeben der Architektur des Prozessors Sie so etwas wie tun könnte:
#ifdef INTEL86
//some 32-bit code
#else
//some 64-bit code
#endif
Bei der Zuordnung Werte in diesen Definitionen, ist es oft eine gute Idee, den Wert mit Klammer umgeben, um zu erhalten, als eine Einheit, unabhängig von dem Kontext, in sie existiert
zum Beispiel #define FOO 3 + 7
ein anderes Ergebnis als #define FOO (3 + 7)
auf dem Ergebnis der folgenden Zeile hat, durch die Reihenfolge der Rechenoperationen.
a = 3 * FOO
Siehe this link für weitere Details über Präprozessordirektiven im Allgemeinen oder this link Informationen stärker auf Objective C.
Es ist der Präprozessor, der die Substitution durchführt. Der Compiler sieht keine #defines. – codaddict
yep weg zurück, als (vielleicht noch heute) Vorverarbeitung wurde von einem separaten unabhängigen Werkzeug getan. – seand
danke für die Antwort. und ich möchte fragen, was ist der Datentyp dieser 3 Elemente? – Questions