keil5报警告warning:implicit declaration ‘xxxxxxxx’ is invalid in C99 大部分解决办法
我遇到这个问题是在RM战队调裁判系统的时候遇到的。
首先要明确一点,报这样的错,绝大部分的情况是因为自己的头文件有问题,我拿我遇到的情况举例:
1.头文件调用
2.函数调用及报错
3.referee_usart_task的头文件
4.bsp_usart头文件头文件路径也全部包含进来了,头文件书写也没有问题,但是就是报了警告
解决办法:
可以看到usart1_init这个函数是在referee_usart_task这个任务下的,因此对于usart1_init的函数申明应该在referee_usart_task的头文件下,而不是我写的bsp_usart.h这个头文件下,更改完路径,即可解决问题。
bsp_usart头文件更改
referee_usart_task的头文件更改:
将usart1_init剪切去上面
还可能的问题:
1.头文件有没有正确包含;
2.头文件写的是否正确,如#ifndef是否写成了#ifdef
3.在移植头文件的时候,注意头文件#ifndef后的__xxx_H_ 里面的xxx有没有更改
如果还有什么问题欢迎大家评论,一起解决!