keil编译出现:error: declaration may not appear after executable statement in block

声明不能出现在可执行状态之后,C语言关于变量的定义只能放在函数的开头,放在执行语句的前面定义,这是C89的标准。

后来的C99标准就已经改变了,无论定义在之前还是之后都是可以的。所以解决方法有两个:

一、定义放在函数的开头

二、修改编译为c99(下面keil5为例子)

先点击魔术棒,再点c/c++,打钩上C99 mode 即可。如图所示

keil编译出现:error: declaration may not appear after executable statement in block