main.c里没有直接调用getCRC16()但加入了相应的头文件就可以编译了

2019-07-14 14:06发布



在crc.c文件里定义了这么一个函数,crc.h文件里也只有这个函数的声明。
u16 getCRC16(volatile u8 *ptr, u8 len);

在另一个.c文件里的某个函数调用该函数,并在.c文件开始时#include crc.h。不过第一个参数给的是16位数组的指针。
编译时,提示错误:
....Userspi.c(111): error:  #167: argument of type "u16 *" is incompatible with parameter of type "u8 *"

然后,在主程序main.c里,加入include "crc.h",编译就通过了。
请教:main.c里并没有直接调用 getCRC16(),为何加入了相应的头文件就可以编译了?


-------------------------------------------------------------

更新上传下工程文件.
还是想不通,为什么在main.c里 include "crc.h"后编译能通过?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
zhhx1985
1楼-- · 2019-07-15 00:09
main函数中并未调用,所以不会判断

后面spi。c里调用了,传错参数了,自然是要报错的

既然知道是16位数组指针,为毛还用8位的形参?直接改成16位的不好吗?
如果不改的话,起码也加个强转....
FAI_weilijuan
2楼-- · 2019-07-15 04:07
 精彩回答 2  元偷偷看……
tianyou15
3楼-- · 2019-07-15 04:22
顶楼上的
yweyerwq
4楼-- · 2019-07-15 05:44
数据指针的格式不一样,操作结果就会出错,
ctwewer
5楼-- · 2019-07-15 09:21
u8和u16数据类型不一致所致, "crc.h"里可能重新定义了。
不不gudh
6楼-- · 2019-07-15 14:28
顶楼上的

一周热门 更多>