Library.hC18: Не используются ли неиспользуемые библиотечные функции в EPROM?
void Foo1(void); // Unused
int Foo2(int, int); // Used
char Foo3(char); // Unused
main.c
// ...
#include "Library.h"
// ...
void main(void)
{
int ret;
// ...
ret = Foo2(3, 7);
// ...
}
У меня есть файл библиотеки, который имеет много определений функций в нем. Изменится ли размер сгенерированного машинного кода из-за неиспользуемых функций библиотеки? Или компилятор оптимизирует код, игнорируя эти неиспользуемые функции?
IDE: MPLAB 8,43
Компилятор: MCC18 3,3 PIC: 18F2550
Большинство линкеров могут пропускать весь объектный файл, а не отдельные функции. Самый простой способ узнать это просто попробовать. –
Неиспользованные функции не добавляются к исполняемому файлу, если компоновщик не является мусором. При этом некоторые линкеры являются мусором. – Lundin