__inline-Funktionen von vs normale Funktionen in C

Studiere ich die Makros und fand viele Quellen und Fragen zum Unterschied zwischen Makros und inline-Funktionen. Aber es gibt nichts, was konkret spezifiziert und differenziert vor - &Nachteile der inline-vs normalen Funktionen.

Aber was ist, wenn ich will, zu wählen zwischen der normalen Funktion und inline-Funktion?

Ich weiß, dass die Nutzung der inline-Funktion erhöht die code-Größe. Aber als während des Studiums die Größe ist nicht das primäre Problem , Effizienz ist das Ziel. Macht eine Funktion zu einer inline-Funktion deutet darauf hin, dass Aufrufe der Funktion werden so schnell wie möglich.(Wegen stack und so Zeug overhead)

Ist immer die Verwendung von inline-Funktion ist besser, oder nicht? Wenn nicht, dann WARUM? Was sind die Vorteile der Verwendung von normalen Funktionen über inline?

Beim Lesen der anderen Fragen habe ich gelesen, dass inline ist nur ein Hinweis für compiler. Compiler kann es ignorieren. Wann kommt compiler es ignorieren und WARUM?

Einige Funktionen können nicht inline. Zum Beispiel, rekursive Funktionen.
Es gibt keine goldene Regel. Manchmal ist es besser, inline (spart einen Funktionsaufruf-stack-Manipulationen), manchmal lohnt es sich nicht (code-Größe zu stark ansteigt). Finden Sie nicht Die einzig Wahre Antwort, dann existiert es nicht.
fine, was über andere. Ich verwende rekursive Funktion sehr weniger.
Die compiler-Entscheidung, die inline ist in der Regel beschlossen, mit einem heuristic.
Nur eine Bemerkung am Rande, mit Bezug auf das, was passieren muss mit einem inline markierte Funktion, die es nicht schaffen, linker Konflikte, wenn seine definition tritt in mehreren compilation-units. So können Sie sicher steckte es in eine header-Datei. In diesem Sinne inline macht es möglich, die eine Funktion ist eingebettet in mehrere Einheiten.

InformationsquelleAutor Abhishek Gupta | 2012-04-12

Schreibe einen Kommentar