问题描述
在之前的一次用keil正常写stm32代码的过程中,迷迷糊糊的不知道干了什么,当新增加了一个flag和一个函数之后(至少当时记得是这样),像往常一样进行编译,却发现这次编译出现了七十多处错误。
错误里面包含的内容千奇百怪,有很多我很久之前的驱动和现在已经不再使用的驱动都报出了错误。
然后我脑子一热,以为是编译器犯病了,就关掉了keil重新打开,结果还是一样,但是已经不能撤回了。
思路分析及问题解决:
后来查找原因的时候先大致看了一下各种错误的类型,主要集中在有变量未定义,结构体未定义,缺少“{”,某结构体的名称不是类型名等问题上。在CSDN上查询似乎也没有看见和我一样类似的情况。但是我很确定大多数出错的c文件我都没有动过,于是我只查看了我最近使用过的c文件的错误,重点查有没有分号打错成中文的情况(因为我写完注释常常忘记改为中文。。)终于看见了问题所在:
有一个我新添加的函数的头文件声明里面我没有加分号,但是它并没有报错。
加上分号之后问题解决,编译没有错误。
总结
尽管这次的问题我还不知道为什么一个分号能够引发大量错误,但是也给我提供了一个查找问题的思路:排除掉不可能发生的情况,剩下有可能的情况一个一个去尝试,应该就可以找到问题。