关于单片机库函数的问题——求高手帮忙解决

2019-07-16 05:00发布

最近在自己写一些.H文件,发现了一些问题。
#ifndef __MATH_H__
#define __MATH_H__

#endif


我以这样的格式写的 .H文件,里面的子函数,编译器在编译的时候,把所有的子函数都编译了进去。那些我在主函数中没有调用到的函数也编译进去。也就是说,只要是在这个文件里的函数,不管有没有被用到,都占用了单片机的资源。虽然资源占得不多,但心里还是很不舒服。
那些编译器自带的库函数,像什么math.h      stdio.h ................这些函数,我加载进来后,只要我不用,就不占单片机一点资源。我也想写一些这样的库函数,还请高手指教.....................

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
asas564403008
2019-07-16 07:12
lovezjf234 发表于 2012-7-30 16:01
子函数是不放在.h文件里的。你放子函数进去当然要被编译,你用extern 加函数名调用,在编译的时候就会被优 ...

我用的 KEIL 4
我看到加载了它自带的库函数
#ifndef __INTRINS_H__
#define __INTRINS_H__
extern void          _nop_     (void);
extern bit           _testbit_ (bit);
extern unsigned char _cror_    (unsigned char, unsigned char);
extern unsigned int  _iror_    (unsigned int,  unsigned char);
extern unsigned long _lror_    (unsigned long, unsigned char);
extern unsigned char _crol_    (unsigned char, unsigned char);
extern unsigned int  _irol_    (unsigned int,  unsigned char);
extern unsigned long _lrol_    (unsigned long, unsigned char);
extern unsigned char _chkfloat_(float);
#if !defined (__CX2__)
extern void          _push_    (unsigned char _sfr);
extern void          _pop_     (unsigned char _sfr);
#endif
#endif
只告诉了一个函数名而已,它函数体放在了哪里?

一周热门 更多>