2016-10-24 8 views
0

Например:Если функция A называется только вызываемой другой функцией B, GCC автоматически помещает эту функцию A в funtion B как часть кода B?

Там есть функция A:

void functionA(); 

и функция B:

void functionB() { 
    functionA(); 
} 

если funcionA только называют functionB во всем проекте, будет GCC (или другой компилятор) автоматически помещают функцию A в функцию B как часть кода функции B?

Или следует использовать -O3 для принудительного включения встроенной функции в GCC?

ответ

1

GCC может встроить функцию, основанную на следующих правилах:
С -O1, если функция A статична и вызывается только один раз.
С -O2, если ожидается, что тело будет меньше кода вызова функции.
С -O3, gcc рассмотрит возможность вложения всех функций.
https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html