3

Library.h

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

4

2 に答える 2

2
  1. 小切手。逆アセンブラまたはその他のツールを使用して、出力バイナリを調べて見つけます。
  2. リンカにデッド ストリッピングを実行するオプションがあるかどうかを調べます。
于 2012-02-19T17:27:17.537 に答える