C-Programmierung

Makro in C-Sprache

Makro in C-Sprache
Ein Makro in der Sprache C ist ein Stück Code, dem ein Name zugewiesen wurde. Wenn der Name irgendwo im Programm verwendet wird, wird der Makrowert vor der Kompilierung des Programms ersetzt. In diesem Artikel werden wir im Detail sehen, wie man ein Makro in der Sprache C schreibt write.

Betrachten Sie den folgenden Code:

START
INTEGER n=5;
PRINT("Wert von n ist %d",n);
ENDE

Der obige Code ist kein gültiger C-Code.

Aber der folgende Code ist gültig:

//Beispiel 1.c
#define START int main()
#define ENDE
#define INTEGER int
#define PRINT(A,B) printf(A,B)
START
INTEGER n=5;
PRINT("Wert von n ist %d",n);
ENDE

Vor der Kompilierung wurden die Makros START, INTEGER, PRINT und END durch ihren Wert ersetzt und der Code wird ein gültiger C-Code. Wir können mit dem folgenden Befehl überprüfen:

gcc -E Beispiel1.c

Dieser Befehl wird angezeigt, nachdem alle Makros erweitert wurden.

Jetzt werden wir verschiedene Arten von Makros sehen:

1. Objektähnliche Makros:

Syntax:

#define Makroname Makrowert

Wenn das Makro mehr als eine Zeile benötigt, können wir es wie folgt machen:

#define Makroname Makrowert1 \
Makrowert2 \
macro_value3
#define MAX 200

Dieses Makro sieht aus wie ein Datenobjekt, deshalb wird diese Art von Makro als objektähnliches Makro bezeichnet.

//Beispiel2.c
//#einschließen
#define MAX 200
int main()

printf("MAX-Wert ist: %d",MAX);
0 zurückgeben;

Im Beispiel2.c, MAX ist ein Makro. Aus der Ausgabe beobachten wir, dass MAX wird durch seinen Wert ersetzt 200.

2. Funktionsähnliche Makros:

Syntax:

#define macro_name() macro_value

Makroname ist ein benutzerdefinierter Name des Makros. Ein Paar Klammern muss nach dem put gesetzt werden Makroname. Dazwischen ist kein Leerzeichen erlaubt Makroname und Klammern. Wir können auch Argumente in dieser Art von Makros übergeben.

#define add(x,y) x+y

Dieses Makro sieht aus wie ein Funktionsaufruf, deshalb wird diese Art von Makro als funktionsähnliches Makro bezeichnet.

//Beispiel3.c
#define add(x,y) x+y
int main()

int a;
Schwimmer b;
a = addiere (4,5);
b = addieren(2.5,3.6)
0 zurückgeben;

In Beispiel3.c, Wir haben gesehen, dass das Makro im Gegensatz zur C-Funktion nur den Code durch Argumente ersetzt, ohne ihn zu berechnen. So können wir mit demselben Makro unterschiedliche Datentypen übergeben.

Wenn wir zwischen dem Makronamen und der Klammer ein Leerzeichen einfügen, funktioniert es genauso wie ein objektartiges Makro. Das folgende C-Beispiel veranschaulicht dies.

//Beispiel4.c
#define hinzufügen (x,y) x+y
int main()

int a;
Schwimmer b;
a = addiere (4,5);
b = addieren(2.5,3.6)

In Beispiel4.c haben wir gesehen, dass das Makro add ersetzt wird durch (x,y) x+y . Wie ein objektähnliches Makro.

3. Makro zum Einfügen von Token:
In der Sprache C wird der Operator ## zum Einfügen von Token verwendet. Mit diesem Operator können wir zwei gültige Token zu einem gültigen Token kombinieren.
Beispiel:

//Beispiel5.c
#define MARGE(x,y) x##y
int main()

int num = MARGE(52,34);
0 zurückgeben;

Wenn wir versuchen, Token einzufügen, die kein gültiges Token generieren, gibt der C-Compiler einen Fehler oder eine Warnung aus.

//Beispiel6.c
#define MARGE(x,y) x##y
int main()

int num = MARGE(52,+);
0 zurückgeben;

Im Beispiel6.c, wir haben eine Fehlermeldung, weil wir nach einer Kombination von zwei Token ein ungültiges Token '52+' erhalten.

4. Makro zum Besaiten:
In der Sprache C wird der Operator # verwendet, um einen Makroparameter in eine Zeichenfolgenkonstante umzuwandeln. Wenn einem #-Operator ein Makroparameter vorangestellt ist, wird der Parameter in ein Zeichenfolgenliteral konvertiert. Stringizing kann für objekt- und funktionsähnliche Makros verwendet werden.
Beispiel:

//Beispiel7.c
#define STRINGIZING(x) #x
int main()

printf(STRINGIZING(Hallo Welt));
0 zurückgeben;

Im Beispiel7.c Wir haben eine Zeichenfolge „Hello World“ mit dem STRINGIZING-Makro.

Fazit:

Dieser Artikel hat über alle Arten von Makros gelernt Objektähnliche Makros, Funktionsähnliche Makros, Makro zum Einfügen von Token, Makro zum Stringisieren und Makro zum Stringisieren in C-Sprache. Jetzt können wir ohne Zweifel ein Makro in unserem C-Programm verwenden.

Weisen Sie Ihre Maustasten mit der X-Mouse Button Control für verschiedene Software unterschiedlich zu
Vielleicht benötigen Sie ein Tool, mit dem sich die Steuerung Ihrer Maus bei jeder von Ihnen verwendeten Anwendung ändern kann. In diesem Fall können ...
Microsoft Sculpt Touch Wireless-Maus Bewertung
Ich habe vor kurzem gelesen, dass Microsoft Sculpt Touch kabellose Maus und beschloss, sie zu kaufen. Nachdem ich es eine Weile benutzt hatte, beschlo...
AppyMouse On-Screen Trackpad und Mauszeiger für Windows Tablets
Tablet-Benutzer vermissen oft den Mauszeiger, insbesondere wenn sie die Laptops gewohnt sind. Die Touchscreen-Smartphones und -Tablets bieten viele Vo...