Unterschied zwischen Makro- und Inline-Funktion

Inhaltsverzeichnis:

Unterschied zwischen Makro- und Inline-Funktion
Unterschied zwischen Makro- und Inline-Funktion

Video: Unterschied zwischen Makro- und Inline-Funktion

Video: Unterschied zwischen Makro- und Inline-Funktion
Video: Inline Macros 2024, Juli
Anonim

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.

Unterschied zwischen Makro- und Inline-Funktion
Unterschied zwischen Makro- und Inline-Funktion

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.

Unterschied zwischen Makro- und Inline-Funktion_Abbildung 2
Unterschied zwischen Makro- und Inline-Funktion_Abbildung 2

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.

Hauptunterschied zwischen Makro- und Inline-Funktion
Hauptunterschied zwischen Makro- und Inline-Funktion

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.

Empfohlen: