代码是实验五 外部中断实验(库函数版)
编译环境是mdk5 option c/c++ 的one ELF...没有勾选
在学习中发现了一个现象。把没有调用用的库函数定义和声明注释掉一部分后,编译的code变小了。
在一些.c文件和对应的.h文件增加新函数的定义和声明,code变大(在没有调用新函数的条件下)。
但是在sys.h与sys.c情况却不同。加入定义的新函数后,编译的code大小却不变。甚至把sys.c文件 remove了code大小也不变。
有知道的老哥吗?麻烦讲一讲,谢谢。
这是在编译器的什么地方设置的吗?
ok,谢谢
我不只是想把代码单纯变小,而是想知道在整个工程option的设定是一样的情况下。为什么有的.c和.h定义和声明了新函数(没有调用)却改变的code大小。在.map文件里也能查找到新函数符号。但是同样的情况对于sys.c与sys.h却不行。只是在sys.c和.h里声明和定义新函数不改变
code大小。。。打开.map文件也找不到新函数符号。除了在主函数调用sys里定义的新函数的情况下,才会找到。code大小才改变。光声明定义无法改变code大小。
但是在其他文件里定义和声明(没有调用)新函数,却至少在.map的Global Symbols里找到函数符号。同时code的大小也改变了。
这就奇怪了,相同的条件,就因为不同的文件而结果不同。。。疑惑中
一周热门 更多>