Unterschied zwischen Makro- und Inline -Funktion

Unterschied zwischen Makro- und Inline -Funktion

Schlüsselunterschied - MACRo gegen Inline Funktion
 

Ein Makro ist ein Codefragment, bei dem es sich um eine Präprozessor -Richtlinie handelt. Eine Inline -Funktion ist eine C ++ - Verbesserungsfunktion, um die Ausführungszeit eines Programms zu minimieren. deshalb, die Schlüsselunterschied Zwischen Makro- und Inline -Funktion ist das Ein Makro wird vom Präprozessor überprüft, während eine Inline -Funktion vom Compiler überprüft wird.

Ein Makro ist zu Beginn des Programms enthalten, dem ein Hash -Zeichen vorangegangen ist. Wenn es im Programm den Macro -Namen gibt, wird er durch den Inhalt des Makros ersetzt.

INHALT

1. Überblick und wichtiger Unterschied
2. Was ist Makro
3. Was ist Inline -Funktion
4. Seite für Seitenvergleich - Makro -VS -Inline -Funktion in tabellarischer Form
5. Zusammenfassung

Was ist Makro?

Der Präprozessor ist ein Programm, das den Quellcode verarbeitet, bevor er den Compiler durchgeht. Es arbeitet mit der Befehlszeile der Präzessor oder der Anweisungen. Im Programm werden die Präprozessor -Richtlinien im Quellprogramm vor dem Hauptprogramm platziert. Bevor der Quellcode den Compiler durchläuft, wird er vom Präprozessor auf Preprozessoranweisungen überprüft. Die Präprozessor -Richtlinien haben das # Symbol. Im Gegensatz zu anderen Aussagen enden sie nicht mit einem Semikolon. Eine Art von Präprozessor -Richtlinie ist Makro. Im Allgemeinen sind die Makros in Großbuchstaben geschrieben.

Abbildung 01: C ++ - Programm mit Makros

Nach dem obigen Programm zeigt Zeile 3 und Zeile 4 Makros an. Bei der Berechnung der Fläche wird der PI -Wert durch das definierte Makro ersetzt. In Zeile 14, Volume = Cube (Wert) erweitert der Präprozessor die Anweisung als Volume = (Wert * Wert * Wert). Das Finden des Würfels kann als Funktion geschrieben werden, aber hier wird es mit einem Makro geschrieben. Wenn es eine Anweisung als Volume = Cube (x+y) gibt, wird sie auf Volumen = (x+y * x+y * x+y) erweitert.

Einige Programmier -Token könnten leicht verwickelt werden. Sie können mit Makros ersetzt werden. e.G. #define und &&, #define oder ||. Eine Makrodefinition kann auch Ausdrücke wie #define Area 4*5 enthalten.56.

Was ist Inline -Funktion?

Wenn eine Funktion aufgerufen wird, braucht der Compiler einige Zeit, um sie auszuführen. Wenn die Funktion nicht sehr komplex ist, kann der Programmierer die Funktion in eine Inline -Funktion konvertieren.  Verweisen Sie das folgende Programm.

Abbildung 02: Funktion ohne Inline

Das Print_hello ist eine einfache Funktion. Es druckt die Zeichenfolge "Hallo", wenn die Funktion aufgerufen wird.  Die Ausführungszeit für diese Funktion beträgt 0.187S. Wenn das inline -Schlüsselwort wie folgt verwendet wird, reduziert sich die Ausführungszeit auf 0.064s.

Abbildung 03: Inline -Funktion

Daher reduziert sich die Ausführungszeit durch die Verwendung des Inline -Schlüsselworts. Die Inline -Funktionen funktionieren möglicherweise nicht, wenn Schleifen vorliegen, Anweisungen umschalten und wenn die Funktion statische Variablen oder rekursive Funktionen enthält.

Was ist der Unterschied zwischen Makro- und Inline -Funktion?

Makro gegen Inline -Funktion

Ein Makro ist ein Codefragment, bei dem es sich um eine Präprozessor -Richtlinie handelt, die zu Beginn des Programms enthalten ist, dem ein Hash -Zeichen vorangegangen ist. Eine Inline -Funktion ist eine C ++ - Verbesserungsfunktion, um die Ausführungszeit eines Programms zu minimieren.
Bewertungszeit
Im Makro wird das Argument jedes Mal bewertet, wenn es im Programm verwendet wird. Im Inline wird das Argument einmal bewertet.
Geprüft von
Ein Makro wird vom Präprozessor überprüft. Eine Inline -Funktion wird vom Compiler überprüft.
 Stichwort
Marco verwendet #Define. Die Inline -Funktion verwendet das Schlüsselwort "Inline".
Verwendung
Makro kann verwendet werden, um Konstanten, Ausdrücke, zur Substitution des wörtlichen Textes und zur Definition von Funktionen usw. zu definieren usw. Eine Inline -Funktion kann verwendet werden, um die Ausführungszeit des Programms zu minimieren.
Beendigung
Makro endet mit der neuen Linie. Die Inline -Funktion endet mit der lockigen Klammer am Ende der Inline -Funktion.
Punkt definieren
Ein Marco wird zu Beginn des Programms definiert. Eine Inline -Funktion kann innerhalb oder außerhalb der Klasse sein.

Zusammenfassung - MaCRo gegen Inline Funktion

In diesem Artikel wurde der Unterschied zwischen Makro- und Inline -Funktion erörtert. Diese Konzepte werden in der C ++ - Programmierung verwendet. Der Unterschied zwischen Makro- und Inline -Funktion besteht darin, dass ein Makro vom Präzessor überprüft wird, während eine Inline -Funktion vom Compiler überprüft wird.

Referenz:

1.„Präprozessor -Richtlinien.”CPLUSPLUS.com. Hier verfügbar 
2.„C -Inline -Funktionen.”Www.Tutorialspitze.com, Tutorials Point, 19. März. 2018. Hier verfügbar