2015-08-15 2 views
0

Если gcc дозвонились с оптимизацией времени связи (-flto) включено, и я использую одну из следующих ключевых слов/атрибута: влияетВлияет ли ключевое слово inline на оптимизацию времени ссылки?

__attribute__((always_inline)) void foo(int i); 
inline void bar(int i); 

ли это ключевое слово/атрибут поведение времени компоновки Оптимизация (если компилятор не может выполнить команду inline)?

Оптимизирует ли оптимизация времени связи inline функции этой функции над функциями без этого ключевого слова/атрибута.

Вопрос в том, что он имеет значение для компоновщика -фазы обработки не компилятора.

+0

Я не думаю, что LTO влияет на эту ситуацию, сильно отличающуюся от уже описанной в документации по атрибутам. –

ответ

2

Основываясь на предыдущем ответе здесь: what “inline __attribute__((always_inline))” means in the function?

__attribute__((always_inline)) 

делает попытку компилятора встраивать его, даже если он отключен в настройках, и

inline 

сообщает компилятору, чтобы попытаться действительно трудно для включения функции.

+1

Вопрос о том, как это влияет на время ссылки и не столько на время компиляции – Soren

+0

Ответ там просто указывает на тщательную прочтение документации, что я и рекомендую в этом случае. Вероятно, вы должны были помечать вопрос как дубликат того, что вы нашли. Хотя вы дали дополнительную информацию, как указано связанным ответом +1 для этого. –

+0

Когда я нажимаю «флаг», ближайший вариант дублирования - «требуется вмешательство модератора». Это то, что я должен делать в будущем? – Jorj