打印
[STM32F1]

STM32使用keil时报错error: #268

[复制链接]
1352|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模式即可。




使用特权

评论回复
沙发
nomomy| | 2023-6-7 13:11 | 只看该作者
默认编译标准是C89               

使用特权

评论回复
板凳
LLGTR| | 2023-6-7 18:20 | 只看该作者
基本每次编译都会把这个功能给勾选上。

使用特权

评论回复
地板
天天向善| | 2023-6-7 18:20 | 只看该作者
这个问题确实是很多初学者会遇到的问题。

使用特权

评论回复
5
芯路例程| | 2023-6-7 18:21 | 只看该作者
好像用V6编译就不用考虑这个问题了。

使用特权

评论回复
6
MessageRing| | 2023-6-7 22:53 | 只看该作者
芯片型号不匹配吧

使用特权

评论回复
7
usysm| | 2023-6-8 14:31 | 只看该作者
根据具体的错误提示和代码进行排查

使用特权

评论回复
8
claretttt| | 2023-6-10 17:22 | 只看该作者
缺少必要的库文件或头文件等。               

使用特权

评论回复
9
AloneKaven| | 2023-6-10 23:30 | 只看该作者
改一下c99标准就行了

使用特权

评论回复
10
Jacquetry| | 2023-6-11 23:13 | 只看该作者
改成新的c标准就行了

使用特权

评论回复
11
nomomy| | 2023-6-13 23:10 | 只看该作者
声明不能在执行语句后              

使用特权

评论回复
12
sheflynn| | 2023-6-14 10:37 | 只看该作者
没有正确配置keil工程               

使用特权

评论回复
13
pl202| | 2023-6-14 15:41 | 只看该作者
没有对变量进行先声明后调用              

使用特权

评论回复
14
chenci2013| | 2023-6-14 18:55 | 只看该作者
变量的声明写在了使用语句的后面

使用特权

评论回复
15
MessageRing| | 2023-6-14 22:43 | 只看该作者
换成新的c标准就可以了

使用特权

评论回复
16
macpherson| | 2023-6-16 12:47 | 只看该作者
将keil的标准改为C99,重新编译即可。

使用特权

评论回复
17
Undshing| | 2023-6-16 23:30 | 只看该作者
这是c语言标准的问题,采用新标准就可以了

使用特权

评论回复
18
Jacquetry| | 2023-6-18 23:05 | 只看该作者
标准问题,设置里改一下就行

使用特权

评论回复
19
maqianqu| | 2023-6-19 11:59 | 只看该作者
提供更完整的错误信息以便我能够更好地帮助 解决问题。

使用特权

评论回复
20
macpherson| | 2023-6-21 13:24 | 只看该作者
一般只要添加相应的头文件即可。  

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

235

主题

1567

帖子

2

粉丝