Если я не объявил функцию f как встроенную. Просто так:
хиджра:
X f(Y y);
a.cpp:
X f(Y y)
{
...
}
Затем в другой единице перевода:
B.cpp:
#include "A.h"
Z g(W w)
{
...
... f(...) ...
...
}
Затем я компилирую две единицы перевода A.o и B.o с помощью gcc 4.6, а затем связываю их также через gcc. (Может быть с -O3 для обоих шагов)
Будет ли gcc рассмотреть возможность включения функции для повышения производительности во время соединения? Или уже слишком поздно?
В обзоре кода кто-то предложил, чтобы я не объявлял свои функции как встроенные, так как компилятор знает лучше, чем когда я включаю. Я всегда был под впечатлением, если только функция не определена в заголовке, а компилятор не имеет возможности встроить ее.
(Если ответ отличается для режима C, режима C ++ или gnu ++ 0x, укажите это также)