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.34
PIC:18F2550
ほとんどのリンカーは、個々の機能ではなく、オブジェクトファイル全体を省略することができます。見つけ出す最も簡単な方法はそれを試してみることです。 –
未使用の関数は、リンカがゴミ箱でない限り、実行可能ファイルに_not_追加されません。つまり、リンカの中にはゴミ箱があります。 – Lundin