void run_hot(void) {
// I am called very often!
serve();
// <more code here>
}
void run_cold(void) {
// I am called only occasionally!
serve();
// <more code here>
}
???inline??? void serve(void) {
// I only want to be called inline from hot functions!
// <more code here>
}
Gibt es eine Möglichkeit, um explizit eine Funktion A in einer Funktion B inline während explizit nicht die gleiche Funktion A in einer Funktion C inlining? Oder bin ich meinem Compiler völlig ausgeliefert?Kann ich eine Funktion teilweise/selektiv inline einbinden?
Sie können das Inlining verhindern, indem Sie eine Funktion in eine separate Kompilierungseinheit einfügen. –
@JensGustedt Kannst du ein Beispiel geben? Ich habe Schwierigkeiten, zu erraten, was für ein Schema Sie vorhaben. – Will
Wenn Sie nicht möchten, dass eine Funktion inline ist, legen Sie die Definition in eine separate .c-Datei und kompilieren Sie sie separat. –