3 Stimmen

lokales Deaktivieren des Funktions-Inlinings

Ich muss den Compiler dazu bringen, eine eingefügte Funktion nicht zu inlinen. z.B.:

Ich habe eine Inline-Funktion A .

Ich habe eine Funktion B das ruft A .
Unter B , A ist inlined und das ist perfekt.

Jetzt habe ich eine Funktion C das ruft A viele Male.
Unter C , A ist inlined, und das ist nicht gut.

Ist es möglich, dem Compiler mitzuteilen, dass er nicht inline A wenn es aufgerufen wird von C ?

--edit--

Die erste Idee ist, die Funktion __declspec(noinline) A1 (die einfach die A ) und rufen A1 anstelle von A en C .
Aber ich frage mich, ob es eine elegantere Lösung gibt?

Hinweis
Ich weiß, dass Inline ist nur ein Vorschlag, aber in meinem Programm habe ich einige unwahrscheinliche oder Fehlerfälle, in denen der Compiler Funktionen einbindet, dies aber nicht tun sollte, da ich in diesen Fällen Funktionsaufrufe bevorzuge, um die Codegröße zu reduzieren. Mir ist auch aufgefallen, dass der Compiler nicht immer die beste Wahl treffen kann (aus Sicht des Entwicklers)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X