
解决KEIL或IAR在莫名其妙的地方报expect a “)”或expect a “;”错误的问题
·
背景
楼主在写代码时遇到个问题,查找莫名其妙的地方报错expect a “)”或expect a “;”,如下图:
寻找原因
楼主百思不得其解,试过将KEIL的编译器版本改为6,此时这段代码不再报故障,但是并不知道根本原因,最后在CSDN查到了这篇文章
链接: https://blog.csdn.net/zhzht19861011/article/details/5823537,文中提到:
6.error: #18: expected a ")"
如果是出现在c文件中, 多半是因为少了一个")",或者错误行有编译器不识别的字符
如果出现在头文件中,错误行又是一个函数声明,多半是因为在函数声明中有编译器不认识的字符.
再仔细看看代码上下文,这才找出原因所在。
柳暗花明
原因在于,没有结合前面的error起来一起看,编译器不认识uint32_t,因此也就无法定义出ulCurrentInterrupt这个变量,因此在后文中ulCurrentInterrupt右边的括号编译器并未识别到,进而提示该段缺少“)”。
异曲同工
IAR中也存在类似问题,如下图:
这两个error也是一样,得解决前面的error,不能光看后一个error。前者出现的原因是:__INLINE的宏定义编译器并未找到,于是编译器将其当成静态变量,因此提示将变量类型定义为int 类型并且提示缺少分号。解决方法将__INLINE改为inline即可。
更多推荐
相关推荐
查看更多
DeepSeek-V3-0324

DeepSeek最新推出DeepSeek-V3-0324版本,参数量从6710亿增加到6850亿,在数学推理、代码生成能力以及长上下文理解能力方面直线飙升。
javascript

JavaScript 编程指南。
electron

使用Electron构建跨平台桌面应用程序,支持JavaScript、HTML和CSS
热门开源项目
活动日历
查看更多
直播时间 2025-03-13 18:32:35

全栈自研企业级AI平台:Java核心技术×私有化部署实战
直播时间 2025-03-11 18:35:18

从0到1:Go IoT 开发平台的架构演进与生态蓝图
直播时间 2025-03-05 14:35:37

国产工作流引擎 终结「996」开发困局!
直播时间 2025-02-25 14:38:13

免费开源宝藏 ShopXO,电商系统搭建秘籍大公开!
直播时间 2025-02-18 14:31:04

从数据孤岛到数据智能 - 企业级数据管理利器深度解析
目录
所有评论(0)