6
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>
}

関数Cで同じ関数 A を明示的にインライン化せずに、関数Aを関数Bで明示的にインライン化する方法はありますか? それとも、コンパイラに完全に翻弄されているのでしょうか?

4

1 に答える 1

4

インライン化を使用すると、完全にコンパイラに翻弄されます。
関数を使用するかどうかはinline、コンパイラによって最適に決定されるだけであり、最適な決定を行うためにコンパイラに依存する必要があります。

于 2012-04-26T03:24:35.543 に答える