Встроенная функция, всегда n + 1 копия кода, где 'n' - количество вызовов

0

Когда я объявляю встроенную функцию, она копируется и вставляется в те места, где она называется, а также есть еще одна копия, к которой мы можем перейти. Можно ли это остановить? Я хочу иметь функциональный код только в тех местах, где он вызывался. Больше не подлежащих вызову копий.

PS. Я знаю, что встроенные функции не всегда "встроены".

Теги:
optimization
inline

2 ответа

4

Если вы не берете его адрес (явно или неявно), то нет причин для компилятора генерировать его вне строки.

2

Если вы определяете функцию как static inline (C99), тогда не будет генерироваться вызываемая версия. Фактически, если вы вообще не вызываете эту функцию, она не будет включена в ваш объектный файл.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню