7 Unterschied zwischen Inline-Funktion und normaler Funktion in C++

Contents

Was ist eine Inline-Funktion?

Die Inline-Funktionen sind ein C++-Erweiterungsfeature, um die Ausführungszeit eines Programms zu erhöhen. In einer Inline-Funktion wird ein Funktionsaufruf direkt durch einen tatsächlichen Programmcode ersetzt. Es springt zu keinem Block, da alle Operationen innerhalb der Inline-Funktion ausgeführt werden. Der Compiler ersetzt die Definition von Inline-Funktionen zur Kompilierzeit, anstatt zur Laufzeit auf die Funktionsdefinition zu verweisen.

Inline-Funktionen werden hauptsächlich für kleine Berechnungen verwendet. Sie sind nicht geeignet, wenn es sich um große Computer handelt. Eine Inline-Funktion ähnelt der normalen Funktion, außer dass das Schlüsselwort inline vor dem Funktionsnamen steht. 

Was Sie über die Inline-Funktion wissen müssen

  • Inline-Funktion ist eine normale Funktion, die durch das Schlüsselwort inline definiert wird, eine kurze Funktion, die vom Compiler erweitert wird und deren Argumente nur einmal ausgewertet werden.
  • Bei der Inline-Funktion ersetzt der Compiler den Funktionsaufruf durch den Funktionsdefinitionscode und kompiliert den gesamten Code. Dieser Vorgang wird als Expansion bezeichnet.
  • Eine Inline-Funktion erzeugt keinen Funktionsaufruf-Overhead, da der Funktionsdefinitionscode im Programm ersetzt wird.
  • Die Inline-Funktion in dem wiederholten Aufruf, beispielsweise in einer Schleife, verschwendet Speicher, spart jedoch CPU-Zeit für die Ausführung dieses Aufrufs.
  • Die Verwendung von zu vielen Inline-Funktionen erhöht die Größe der ausführbaren Datei aufgrund der Duplizierung desselben Codes.
  • Alle Funktionen innerhalb einer Klasse in C++ sind implizit inline.

 Was ist eine normale Funktion?

Eine normale Funktion ist ein wiederverwendbarer Codeblock, der es einfacher macht, ein Programm zu verstehen, zu testen und leicht zu ändern, ohne das aufrufende Programm zu ändern. Funktionen teilen den Code und modularisieren das Programm für bessere und effektivere Ergebnisse. Kurz gesagt, ein größeres Programm ist in verschiedene Unterprogramme unterteilt, die als Funktionen aufgerufen werden.

Wenn Sie ein großes Programm in verschiedene Funktionen unterteilen, können Sie jede Funktion einzeln verwalten. Wenn im Programm ein Fehler auftritt, können Sie fehlerhafte Funktionen einfach untersuchen und nur diese Fehler beheben. Sie können Funktionen einfach aufrufen und verwenden, wann immer sie benötigt werden, was automatisch zu einer Zeit- und Platzersparnis führt.

Was Sie über die normale Funktion wissen müssen

  • Eine normale Funktion ist ein wiederverwendbarer Codeblock, der es einfacher macht, ein Programm zu verstehen, zu testen und leicht zu ändern, ohne das aufrufende Programm zu ändern.
  • Bei der Programmausführung wird der Code zunächst kompiliert und anschließend in ausführbaren Code umgewandelt.
  • Die normale Funktion erzeugt Overheads, wenn ein Funktionsaufruf auftritt.
  • Die normale Funktion in solchen Aufrufen verschwendet keinen Speicher, sondern verbraucht mehr CPU-Zeit, um diesen Aufruf auszuführen.
  • In normalen Funktionen mit kleiner Codegröße ist die Zeit, die benötigt wird, um den Sprung des Funktionsaufrufs durchzuführen, länger als die Zeit, die zum Ausführen des Codes der Funktion benötigt wird.
  • Die Verwendung von zu vielen normalen Funktionen hat keinen Einfluss auf die Dateigröße nach der Kompilierung.
  • Alle Funktionen außerhalb einer Klasse in C++ sind normale Funktionen.

Unterschied zwischen Inline-Funktion und Normalfunktion in Tabellenform

VERGLEICHSGRUNDLAGEINLINE-FUNKTIONNORMALE FUNKTION
BeschreibungInline-Funktion ist eine normale Funktion, die durch das Schlüsselwort inline definiert wird, eine kurze Funktion, die vom Compiler erweitert wird und deren Argumente nur einmal ausgewertet werden.  Eine normale Funktion ist ein wiederverwendbarer Codeblock, der es einfacher macht, ein Programm zu verstehen, zu testen und leicht zu ändern, ohne das aufrufende Programm zu ändern.  
AusführungBei der Inline-Funktion ersetzt der Compiler den Funktionsaufruf durch den Funktionsdefinitionscode und kompiliert den gesamten Code. Dieser Vorgang wird als Expansion bezeichnet.  Bei der Programmausführung wird der Code zunächst kompiliert und anschließend in ausführbaren Code umgewandelt.  
GemeinkostenEine Inline-Funktion erzeugt keinen Funktionsaufruf-Overhead, da der Funktionsdefinitionscode im Programm ersetzt wird.  Die normale Funktion erzeugt Overheads, wenn ein Funktionsaufruf auftritt.  
SpeichernutzungDie Inline-Funktion in dem wiederholten Aufruf, beispielsweise in einer Schleife, verschwendet Speicher, spart jedoch CPU-Zeit für die Ausführung dieses Aufrufs.  Die normale Funktion in solchen Aufrufen verschwendet keinen Speicher, sondern verbraucht mehr CPU-Zeit, um diesen Aufruf auszuführen.  
FunktionsaufrufzeitIn der Inline-Funktion tritt ein solcher Fall nicht auf.In normalen Funktionen mit kleiner Codegröße ist die Zeit, die benötigt wird, um den Sprung des Funktionsaufrufs durchzuführen, länger als die Zeit, die zum Ausführen des Codes der Funktion benötigt wird.  
Auswirkung von zu vielen Inline-Funktionen.Die Verwendung von zu vielen Inline-Funktionen erhöht die Größe der ausführbaren Datei aufgrund der Duplizierung desselben Codes.  Die Verwendung von zu vielen normalen Funktionen hat keinen Einfluss auf die Dateigröße nach der Kompilierung.  
Funktion in der KlasseAlle Funktionen innerhalb einer Klasse in C++ sind implizit inline.  Alle Funktionen außerhalb einer Klasse in C++ sind normale Funktionen.  

osky