3

图书馆.h

void Foo1(void);        // Unused
int  Foo2(int, int);    // Used
char Foo3(char);        // Unused

主程序

// ...
#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 回答
0

对于 lib 中的 C18 成员是 .o - 因此,如果您的链接需要来自成员的一个函数,则整个(来自的所有函数).o 包含在最终的 bin/hex 代码中。

于 2017-09-05T09:18:11.690 回答