无法找到函数或变量解决方法

1.前言

最近有人问了我一个函数无法找到的问题,确实,函数无法找到是有很多方面的因素,并且某些方面是真的很坑。你明明已经定义了函数,但在main函数调用它的时候却说找不到。借此,写下一篇文章关于函数或变量无法找到的解决方法,用于示范IDE为keil5。如果你现在正在学32,那么这篇文章对你来说可能是很有帮助了。

2.头文件中没有写声明

在这里插入图片描述
在usart.c文件中定义了一个usart_init函数,而我们在main函数调用它的时候,却出现了如下问题:
在这里插入图片描述
找不到你在usart.c文件中定义的usart_init函数,原因是因为没有在usart.h文件中声明usart_init函数。
在这里插入图片描述
在头文件中声明即可解决问题。

3.没有添加头文件的路径

3.1点击魔术棒

在这里插入图片描述

3.2点击c++/c

在这里插入图片描述

3.3 添加头文件所在文件夹

在这里插入图片描述

4.预编译指令重复

这个错误是最坑的,你几乎很难发现。 我们一般写头文件的时候,都是直接把已经有的头文件拿来抄一下,然而,就是图个方便的结果确是找不到函数和变量。
在这里插入图片描述
在wifi.c源文件中,预编译指令是:
在这里插入图片描述

这个语句的意思就不用我说了。
而我在usart.c源文件中也是预编译指令也是这样的。
在这里插入图片描述
如果两个头文件中的预编译指令都是相同的话,那么只有一个头文件的代码才会被编译。

5.总结

当你发现无法找到函数或变量的时候,最有可能出现的问题就是预编译指令相同,这是最坑的,一定要注意,新建一个头文件的时候,不要偷懒,直接复制其他头文件中的代码,稍有不注意就会出现这种问题。并且很难立即发现。

Guess you like

Origin blog.csdn.net/qq_46359697/article/details/109390722
Recommended