Hauptunterschied – Makro vs. Inline-Funktion
Ein Makro ist ein Codefragment, das eine Präprozessordirektive ist. Eine Inline-Funktion ist eine C++-Erweiterungsfunktion, um die Ausführungszeit eines Programms zu minimieren. Daher besteht der Hauptunterschied zwischen Makro- und Inline-Funktion darin, dass ein Makro vom Präprozessor geprüft wird, während eine Inline-Funktion vom Compiler geprüft wird.
Am Anfang des Programms steht ein Makro mit vorangestelltem Rautezeichen. Wenn der Makroname im Programm vorhanden ist, wird er durch den Inh alt des Makros ersetzt.
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äprozessordirektiven im Quellprogramm vor dem Hauptprogramm platziert. Bevor der Quellcode den Compiler durchläuft, wird er vom Präprozessor auf Präprozessordirektiven geprüft. Die Präprozessordirektiven haben das Symbol. Im Gegensatz zu anderen Anweisungen enden sie nicht mit einem Semikolon. Eine Art von Präprozessordirektive ist Makro. Makros werden in der Regel in Großbuchstaben geschrieben.
Abbildung 01: C++ Programm mit Makros
Nach obigem Programm zeigen Zeile 3 und Zeile 4 Makros an. Bei der Flächenberechnung wird der PI-Wert durch das definierte Makro ersetzt. In Zeile 14, volume=CUBE(value), erweitert der Präprozessor die Anweisung als volume=(valuevaluevalue). Das Finden des Würfels kann als Funktion geschrieben werden, aber hier wird es mit einem Makro geschrieben. Wenn es eine Aussage wie volume=CUBE(x+y) gibt, wird sie zu volume=(x+yx+yx+y) erweitert.
Einige Programmier-Tokens können leicht falsch eingegeben werden. Sie können über Makros ersetzt werden. z. B. definiere UND &&, definiere ODER ||. Eine Makrodefinition kann auch Ausdrücke wie define AREA 45.56. enth alten.
Was ist eine 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 umwandeln. Siehe untenstehendes Programm.
Abbildung 02: Funktion ohne Inline
Der print_hello ist eine einfache Funktion. Es gibt die Zeichenfolge „Hallo“aus, wenn die Funktion aufgerufen wird. Die Ausführungszeit für diese Funktion beträgt 0,187 s. Wenn Sie das Inline-Schlüsselwort wie folgt verwenden, reduziert sich die Ausführungszeit auf 0,064 s.
Abbildung 03: Inline-Funktion
Daher verkürzt sich durch die Verwendung des Schlüsselworts inline die Ausführungszeit. Die Inline-Funktionen funktionieren möglicherweise nicht, wenn es Schleifen, Switch-Anweisungen gibt und wenn 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äprozessordirektive handelt, die am Anfang des Programms mit vorangestelltem Rautezeichen eingefügt wird. | Eine Inline-Funktion ist eine C++-Erweiterungsfunktion, um die Ausführungszeit eines Programms zu minimieren. |
Auswertungszeit | |
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. |
Schlüsselwort | |
Marco verwendet define. | Die Inline-Funktion verwendet das Schlüsselwort ‚inline‘. |
Verwendung | |
Makro kann zum Definieren von Konstanten, Ausdrücken, zur wörtlichen Textersetzung und zum Definieren von Funktionen usw. verwendet werden. | Eine Inline-Funktion kann verwendet werden, um die Ausführungszeit des Programms zu minimieren. |
Kündigung | |
Makro endet mit der neuen Zeile. | Inline-Funktion endet mit der geschweiften Klammer am Ende der Inline-Funktion. |
Definitionspunkt | |
Ein Marco wird am Anfang des Programms definiert. | Eine Inline-Funktion kann sich innerhalb oder außerhalb der Klasse befinden. |
Zusammenfassung – Makro vs. Inline-Funktion
In diesem Artikel wurde der Unterschied zwischen Makro- und Inline-Funktion beschrieben. Diese Konzepte werden in 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.