问题描述:
在a.c文件定义并实现函数char *func(char *buf)
在b.c文件想使用函数func,于是想到可以extern,但是如果不小心把参数写错了
extern char *func(int buf)
编译器是不是帮忙检查这种错误的,因为extern是在链接的时候寻找函数符号,但并不进行参数检查
这样的话,肯定得到的结果不是预期,甚至还会crash,但由于编译运行不报错,问题很难查找
解决办法:
在头文件声明,然后include
会在编译阶段即检查函数名和参数