Ваш компоновщик сможет сгенерировать карту ссылок со сводной информацией об использовании ПЗУ и ОЗУ - вы можете создавать с использованием встроенных функций и без них и увидеть результат самостоятельно.
Встраивание приводит к тому, что копии кода заменяют вызовы одной копии кода, поэтому по определению пространство кода (ПЗУ в вашем случае) увеличивается.Это мало влияет на оперативную память, хотя и уменьшает использование стека на небольшую величину, поскольку обратный адрес не требуется.Это сокращение времени выполнения и не будет отображаться на карте ссылок.
Это будет иметь значение только в том случае, если ваш компилятор решит применить запрос inline
.GCC, например, не будет делать это на уровне оптимизации -O0 (по умолчанию), и даже в этом случае может не делать этого при любых обстоятельствах, и может даже встроенный код, который явно не помечен для встраивания.
Ваш компилятор может иметь средства для принудительного встраивания, но ключевое слово inline
не в этом - например, в GCC вы бы использовали атрибут функции __attribute__((always_inline))
.Однако второе предположение о компиляторе, когда дело доходит до того, что следует и чего не следует указывать, обычно является плохой идеей для современного оптимизирующего компилятора.Как правило, он будет принимать более целостные решения на основе кода любого значительного размера без усилий разработчика.