此文章针对编译器选择为V5.06 update 7,如下图
使用此编译器写代码时,定义变量的位置不恰当也会编译出错,如下所示:
- 定义变量位置在头部,没有错误:
int main(void)
{
int a;
int b; //定义变量在头部
a=10;
b=1;
while(1)
{
}
}
这里两个警告是因为变量定义了没有使用
- 定义变量位置不在头部,出错:
int main(void)
{
int a;
a=10; //执行语句之后定义变量b
int b;
b=1;
while(1)
{
}
}
错误说的是声明int b不能出现在可执行语句之后
出错原因是由于默认编译器没有选择C99标准,这样的话定义变量只能在程序头部,否则会报错。那我们可以选择C99标准,只需如下操作:
选择好之后,定义变量的位置就不会被约束了,如下:
int main(void)
{
int a;
a=10; //执行语句之后定义变量b
int b;
b=1;
while(1)
{
}
}
—————————————————————-2022.9.29————————————————————————–
最新版本MDK537(及以后)可能上述方法还是不行。
如果发现还是会出错,请取消勾选C99,勾选 GUN extensions即可
版权声明:本文为weixin_44775687原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。