Unterschied zwischen Makro- und Inline-Funktion

Schlüsseldifferenz - Macro vs Inline Funktion
 

Ein Makro ist ein Codefragment, bei dem es sich um eine Präprozessoranweisung handelt. Eine Inline-Funktion ist eine C ++ - Erweiterungsfunktion, um die Ausführungszeit eines Programms zu minimieren. deshalb, die Hauptunterschied zwischen Makro- und Inline-Funktion ist das Ein Makro wird vom Präprozessor geprüft, während eine Inline-Funktion vom Compiler geprüft wird.

Am Anfang des Programms ist ein Makro enthalten, dem ein Hash-Zeichen vorangestellt ist. Wenn der Makroname im Programm vorhanden ist, wird er durch den Inhalt des Makros ersetzt.

INHALT

1. Übersicht und Schlüsseldifferenz
2. Was ist Makro?
3. Was ist Inline-Funktion?
4. Vergleich nebeneinander - Makro- und Inline-Funktion in Tabellenform
5. Zusammenfassung

Was ist Makro??

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

Abbildung 01: C ++ - Programm mit Makros

Zeile 3 und Zeile 4 bezeichnen Makros gemäß dem obigen Programm. Bei der Flächenberechnung wird der PI-Wert mit dem definierten Makro ersetzt. In Zeile 14, volume = CUBE (value), erweitert der Präprozessor die Anweisung als volume = (value * value * value). Das Finden des Cubes kann als Funktion geschrieben werden, aber hier wird er mit einem Makro geschrieben. Wenn eine Anweisung als volume = CUBE (x + y) vorhanden ist, wird sie auf volume = (x + y * x + y * x + y) erweitert..

Einige Programmiertoken können leicht falsch geschrieben werden. Sie können mit Makros ersetzt werden. z.B. #define AND &&, #define OR ||. Eine Makrodefinition kann auch Ausdrücke wie #define AREA 4 * 5.56 enthalten.

Was ist Inline-Funktion??

Wenn eine Funktion aufgerufen wird, benötigt 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. Siehe das untenstehende Programm.

Abbildung 02: Funktion ohne Inline

Das print_hello ist eine einfache Funktion. Beim Aufruf der Funktion wird die Zeichenfolge "Hello" ausgegeben. Die Ausführungszeit für diese Funktion beträgt 0,187s. Wenn Sie das Inline-Schlüsselwort wie folgt verwenden, reduziert sich die Ausführungszeit auf 0,064 Sekunden.

Abbildung 03: Inline-Funktion

Wenn Sie das Inline-Schlüsselwort verwenden, verringert sich die Ausführungszeit. Die Inline-Funktionen funktionieren möglicherweise nicht, wenn Schleifen, switch-Anweisungen vorhanden sind und die Funktion statische Variablen oder rekursive Funktionen enthält.

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

Makro vs. Inline-Funktion

Ein Makro ist ein Codefragment, bei dem es sich um eine Präprozessoranweisung handelt, die am Anfang des Programms enthalten ist und vor einem Hashzeichen steht. Eine Inline-Funktion ist eine C ++ - Erweiterungsfunktion, um die Ausführungszeit eines Programms zu minimieren.
Bewertungszeit
Im Makro wird das Argument jedes Mal ausgewertet, wenn es im Programm verwendet wird. Inline wird das Argument einmal ausgewertet.
Geprüft von
Ein Makro wird vom Präprozessor geprüft. Eine Inline-Funktion wird vom Compiler geprüft.
 Stichwort
Marco verwendet #define. Die Inline-Funktion verwendet das Schlüsselwort "Inline"..
Verwendungszweck
Mit Makro können Sie Konstanten und Ausdrücke definieren, Text ersetzen und Funktionen usw. definieren. Eine Inline-Funktion kann verwendet werden, um die Ausführungszeit des Programms zu minimieren.
Beendigung
Das Makro endet mit der neuen Zeile. Die Inline-Funktion endet mit der geschweiften 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 vs Inline Funktion

In diesem Artikel wurde der Unterschied zwischen Makro- und Inline-Funktion beschrieben. Diese Konzepte werden bei der C ++ - Programmierung verwendet. Der Unterschied zwischen Makro- und Inline-Funktion besteht darin, dass ein Makro vom Präprozessor geprüft wird, während eine Inline-Funktion vom Compiler geprüft wird.

Referenz:

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