Gewusst wie: Deklarieren von Inline-Funktionen in C++

November 1

In C++ legen Sie eine C++-Funktion mit dem Schlüsselwort Inline eine Anforderung an dem Compiler die Funktion Leistung zu erstellen. Abhängig von mehreren Faktoren ab kann der Compiler Code der Funktion in der Aufrufer Codestream integrieren und optimieren Sie den Code Inline erweitert. Inline ist eine Anfrage, keine Garantie. Die Kosten für inlining ist in der Regel eine Erhöhung der Codegröße. Lesen Sie weiter lernen, Inline deklariert in C++ funktioniert.

Anweisungen

1 Funktionen Inline nach folgenden Kriterien zu machen. Der Code innerhalb der Funktion Klammern sollte nicht drei Zeilen nicht überschreiten. Das Programm Aufrufe der Funktion sollte in die Hunderte oder mehr nummerieren. Denken Sie daran, dass allzu eifrigen Inlinefunktionen können dazu führen, dass ein Phänomen namens Code aufblasen. Das bedeutet zu viel holen in den virtuellen Speicher, die Leistung verringern können.

2 Setzen Sie das Inline-Schlüsselwort vor der Funktionsdeklaration und Definition zu kennzeichnen, dass es Inline ist:

Inline void Func(int); Erklärung

Inline void Func (Int Num) {}

3 Zeilen code

}

3 Inline Member-Funktion einer C++-Klasse durch den Code der Funktion im Class-Text zu schreiben. Dies ist eine alternative Möglichkeit sagen, des Compilers Inline diese Funktion, aber es muss ein Mitglied einer C++-Klasse zu sein:

Klasse Complex {}

Öffentliche:

Int Init() {}

3 Zeilen code

}

4 Finden Sie Alternativen zur Verwendung des Makros definieren, die eine Alternative zu eine Inline-Funktion ist. Das Makro definieren erlaubt den Präprozessor an Inline-Funktion zu erweitern. Makros sind unsicher, da sie nicht Typüberprüfung:

avoidIfPoss(i) definieren ((i) > = 0? (i) : -(i) )

Tipps & Warnungen

  • Dieses Tutorial gilt gleichermaßen für die C-Programmierung.
  • Wenn Sie eine Member-Funktion als Inline mit dem Schlüsselwort definieren möchten, setzen Sie das Schlüsselwort neben der Definition außerhalb des Körpers Klasse nicht neben der Deklaration in der Klasse.
  • Wenn Ihr System verfügt über 100 Funktionen, jeweils 10 Bytes ausführbaren Codes definiert und jede Funktion in 100 Orten in Ihrem Programm aufrufen, erhöht dies die ausführbare Datei um 100.000 Bytes.
  • Inlinefunktionen könnte die Zahl der Cache-Misses. Eine Schleife greifen viele Zeilen des Cache-Speichers, die den Speichercache auszudiskutieren herbeiführen.