你点击蓝字关注,回复“入门资料”获取单片机入门到高级开挂教程
开发板带你入门,我们带你飞
文 | 无际(微信:2777492857)
全文约1582字,阅读大约需要 5 分钟
我第一次学的编程语言是java,当时用eclipse开发环境,后面没学成,转成单片机。
刚开始学51单片机的时候,从强大的开发工具eclipse转变到像远古石器一样的Keil,还是挺不习惯的。
除了不会自动补全之类的基础功能以外,最头痛的就是编译出错时去找问题,比如经常会遇到"syntax error near"这样的编译错误。
新手对c语言语法不熟练,或者不细心,特别容易缺括号、缺分号啥的低级错误,而有些错误,不会像eclipse一样直接给你定位到某一行。有些哪怕定位到了,也可能不是那行代码引起的。
类似于这种:
是不是像极了刚学单片机的你,写的程序?
在使用Keil开发时,遇到 "syntax error near" 这样的编译错误通常意味着你的代码中存在语法错误,而且错误通常发生在某个关键字、操作符或者标识符的附近。
"syntax error near" 是一个通用的错误提示,它并不提供具体的错误原因。
所以,解决这个问题,就像破案一样,可能要考虑很多潜在的问题。
Keil我用了至少也有10年时间了,今天针对 "syntax error near" 的编译错误,来分享下我的解决步骤:
1.检查错误信息:
仔细阅读编译器给出的错误信息,它会告诉你错误发生的大致位置。错误信息通常会包含行号,比如上图的SECOND.C(101)这种,这可以帮助你快速定位到问题代码。
2.检查附近的代码:
如果编译器给出的行号那里的代码,感觉没有问题,则要检查错误信息附近的代码。查找是否有拼写错误、缺少分号、括号不匹配、关键字使用不当等问题。
3.检查语法:
看下有没有语法错误,之前就个老铁,把main写成了mian,这种低级错误,找了几个小时。
还有就是,所有的控制语句(如if、for、while等)都正确地使用了括号。
4.检查包含的头文件:
有时候,错误可能是由于包含了错误的头文件,或者头文件中的代码有问题。
检查所有 #include 语句,确保它们都是正确的,并且包含的头文件与你的项目兼容。
5.检查宏定义和预处理器指令:
如果错误信息附近有宏定义(如#define)或者预处理器指令(如#if、#endif等),检查它们是否正确使用。
6.缩小问题范围:
如果错误难以定位,尝试逐步注释掉代码块,逐步缩小问题范围,直到找到确切的错误位置。
7.使用代码编辑器的辅助功能:
有时候Keil看起代码来,没那么直观,所以我一般会借助一些代码编辑器,比如Notepad++之类的。
8.直接复制错误信息到搜索引擎
其实keil的大多数错误,都能通过搜索找到答案,直接把错误信息复制到搜索引擎就可以了。
就冲这点,我对Keil的好感度直接加100。
以上8种方法,其实适用于大多数的代码编译错误的问题。
end
下面是更多无际原创的个人成长经历、行业经验、技术干货。
1.电子工程师是怎样的成长之路?10年5000字总结
2.如何快速看懂别人的代码和思维
3.单片机开发项目全局变量太多怎么管理?
4.C语言开发单片机为什么大多数都采用全局变量的形式?
5.单片机怎么实现模块化编程?实用程度让人发指!
6.c语言回调函数的使用及实际作用详解
7.手把手教你c语言队列实现代码,通俗易懂超详细!
8.c语言指针用法详解,通俗易懂超详细!