[STM32F1] STM32使用keil时报错error: #268

[复制链接]
2469|20
 楼主| jf101 发表于 2023-5-30 16:56 | 显示全部楼层 |阅读模式

STM32使用keil时报错如下:

...\..\User\adc\bsp_adc.c(27): error:  #268: declaration may not appear after executable statement in block


网上查到原因以及解决方法如下:

原因:在ANSI的C标准中,C89标准----变量的一定是在< { >、的后面,而不能在语句的后面,而C99标准中,变量可以任意地方定义,不强制。

解决方法:点开魔法棒,在C/C++里勾选C99模式即可。

1.png


nomomy 发表于 2023-6-7 13:11 | 显示全部楼层
默认编译标准是C89               
LLGTR 发表于 2023-6-7 18:20 | 显示全部楼层
基本每次编译都会把这个功能给勾选上。
天天向善 发表于 2023-6-7 18:20 | 显示全部楼层
这个问题确实是很多初学者会遇到的问题。
芯路例程 发表于 2023-6-7 18:21 | 显示全部楼层
好像用V6编译就不用考虑这个问题了。
MessageRing 发表于 2023-6-7 22:53 | 显示全部楼层
芯片型号不匹配吧
usysm 发表于 2023-6-8 14:31 | 显示全部楼层
根据具体的错误提示和代码进行排查
claretttt 发表于 2023-6-10 17:22 | 显示全部楼层
缺少必要的库文件或头文件等。               
AloneKaven 发表于 2023-6-10 23:30 | 显示全部楼层
改一下c99标准就行了
Jacquetry 发表于 2023-6-11 23:13 | 显示全部楼层
改成新的c标准就行了
nomomy 发表于 2023-6-13 23:10 | 显示全部楼层
声明不能在执行语句后              
sheflynn 发表于 2023-6-14 10:37 | 显示全部楼层
没有正确配置keil工程               
pl202 发表于 2023-6-14 15:41 | 显示全部楼层
没有对变量进行先声明后调用              
chenci2013 发表于 2023-6-14 18:55 | 显示全部楼层
变量的声明写在了使用语句的后面
MessageRing 发表于 2023-6-14 22:43 | 显示全部楼层
换成新的c标准就可以了
macpherson 发表于 2023-6-16 12:47 | 显示全部楼层
将keil的标准改为C99,重新编译即可。
Undshing 发表于 2023-6-16 23:30 | 显示全部楼层
这是c语言标准的问题,采用新标准就可以了
Jacquetry 发表于 2023-6-18 23:05 | 显示全部楼层
标准问题,设置里改一下就行
maqianqu 发表于 2023-6-19 11:59 | 显示全部楼层
提供更完整的错误信息以便我能够更好地帮助 解决问题。
macpherson 发表于 2023-6-21 13:24 | 显示全部楼层
一般只要添加相应的头文件即可。  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

262

主题

1965

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部