stm32:error: #268: declaration may not appear after executable statement in block

今天写中断函数时报错:
error: #268: declaration may not appear after executable statement in block
谷歌翻译直译过来就是
声明可能不会出现在块中的可执行语句之后
这里写图片描述

其实语句没有什么问题,但是
EXTI_InitTypeDef EXTI_Struct;
这句话的位置有错误,应该放在大括号后面
这里写图片描述

32的库中,结构体大部分都加的typedef,意味着要重新声明,可以理解为EXTI_InitTypeDef可以重新定义变量,然后通过 “.” 访问结构体中的内容。类似于typedef unsigned char uchar ;uchar= ** ;
C语言规定变量声明必须在函数开头,也就是大括号之后。
EXTI_InitTypeDef EXTI_Struct; 这句话相当于在声明变量,所以放在函数中会报错。
MDK5默认的还是C89标准,限定了声明变量的位置。在C99标准中则没有此限制,如果想开启C99标准则可通过打开魔术棒中的C/C++面板,勾选“C99Mode”。

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值