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.
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
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.
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.
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. |
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.
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