C18: 未使用的库函数会占用EPROM 空间吗?
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);
// ...
}
我有一个库文件,其中有很多函数定义。生成的机器码大小是否会因为未使用的库函数而增加?或者编译器会通过忽略那些未使用的函数来优化代码吗?
集成开发环境:MPLAB 8.43
编译器:MCC18 3.34
图片:18F2550
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);
// ...
}
I have a library file which has a lot of function definitions in it. Will the generated machine code size increase because of the unused library functions? Or will the compiler optimize the code by ignoring those unused functions?
IDE: MPLAB 8.43
Compiler: MCC18 3.34
PIC: 18F2550
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
对于 lib 中的 C18 成员,它是 .o - 因此,如果您的链接需要成员中的一个函数,则整个(所有函数).o 都包含在最终的 bin/hex 代码中。
For C18 member in lib is .o - so if your link requires one function from a member the whole (all functions from) .o is included in final bin/hex code.