Betrachten Sie den folgenden Code:
STARTDer obige Code ist kein gültiger C -Code.
Der folgende Code ist jedoch gültig:
//Beispiel 1.CVor der Zusammenstellung wurde der Makrostart, die Ganzzahl, das Druck und das Ende durch ihren Wert ersetzt, und der Code wird zu einem gültigen C -Code. Wir können mit dem folgenden Befehl überprüfen:
GCC -E Beispiel1.CDieser Befehl zeigt nach der Erweiterung aller Makros.
Jetzt werden wir verschiedene Arten von Makros sehen:
1. Objektähnliche Makros:
Syntax:
#define macro_name macro_valueWenn das Makro mehr als eine Zeile benötigt, können wir dies wie folgt tun:
#define macro_name macro_value1 \Dieses Makro sieht aus wie ein Datenobjekt, weshalb diese Art von Makro als objektähnliches Makro bezeichnet wird.
// Beispiel2.CIn Exapmle2.C, Max ist ein Makro. Aus der Ausgabe beobachten wir das Max wird durch seinen Wert ersetzt 200.
2. Funktionsähnliche Makros:
Syntax:
#define macro_name () macro_valueMACRO_NAME ist ein benutzerdefinierter Name des Makros. Paar von Klammern muss nach dem vorgehen MACRO_NAME. Es ist kein Platz dazwischen erlaubt MACRO_NAME und Klammern. Wir können auch Argumente in dieser Art von Makros übergeben.
#define add (x, y) x+yDieses Makro sieht aus wie ein Funktionsaufruf, deshalb bezeichnet diese Art von Makro als funktionsähnliches Makro.
// Beispiel3.CIn Beispiel3.C, Wir haben gesehen, dass das Makro im Gegensatz zu Cs Funktion nur den Code durch Argumente ersetzt, ohne ihn zu berechnen. So können wir mit demselben Makro einen anderen Datentyp übergeben.
Wenn wir einen Platz zwischen dem Makroamen und der Klammern einlegen, funktioniert er genauso wie ein objektartiges Makro. Im Folgenden c zeigt das Beispiel dies veranschaulicht dies.
// Beispiel4.CIn Beispiel4.c, wir haben gesehen, dass das Makro -Add durch (x, y) x+y ersetzt wird . Gleich wie ein objektähnliches Makro.
3. Makro für Token -Einfügen:
In der C -Sprache wird ## Operator zum Token -Einfügen verwendet. Mit diesem Bediener können wir zwei gültige Token zu einem gültigen Token kombinieren.
Beispiel:
Wenn wir versuchen, Token einzufügen, die kein gültiges Token generieren, gibt der C -Compiler einen Fehler oder eine Warnung an.
// Beispiel6.CIn Beispiel6.C, Wir haben eine Fehlermeldung, weil wir nach einer Kombination von zwei Token einen ungültigen Token '52+'erhalten.
4. Makro zum Stringwerk:
In der C -Sprache wird der # Operator verwendet, um einen Makroparameter in eine String -Konstante zu konvertieren. Wenn ein # Operator mit einem Makroparameter vorausgeht, wandelt sich der Parameter in ein String -Literal um. Das Stringing kann für objektähnliche und funktionsähnliche Makros verwendet werden.
Beispiel:
In Beispiel7.C Wir haben eine Zeichenfolge „Hallo Welt“ mit dem String -Makro.
Abschluss:
Dieser Artikel hat alle Arten von Makro-ähnlich erfahren Objektähnliche Makros, Funktionsähnliche Makros, Makro für Token -Einfügen, Makro zum String und Makro zum Stringwerk In C -Sprache. Jetzt können wir ohne Zweifel ein Makro in unserem C -Programm verwenden.