想写一个模块,模块里面有我常用的一些功能函数,比如:
a.h文件
#ifndef _a_h_
#define _a_h_
extern void one(void);
extern void two(void);
#endif
a.c文件
#include "a.h"
extern void one()
{
.
}
extern void two()
{
..
}
main.c
#include
#include "a.h"
void main()
{
while(1)
{
one();
}
}复制代码我只使用了a.h文件中定义的一个函数one,two没有用到
keil 编译的时候给出警告
有什么方法能让没有使用过的函数,不进行连接编译?
那keil c的库又是怎么样弄的?
把函数做成宏定义如何
#define one() do{...}while(0);
每个.C文件中只写一个函数
设置屏蔽等级,忘了是6,13,还是16,试试就知道了,条件编译也行
人家怎么知道你没有调用呢?调用不一定是显式的,也许是修改堆栈,也许是用函数指针,方法多得很,编译器无法知道你是否会调用到该函数,在它的"眼"里,存在即为合理.
所以,没有用到的函数你可以用#if #endif