函数体内局部变量定义的问题
扫描二维码
随时随地手机看文章
有读者问了这样一个问题:我将IAR EWARM中的一个函数,拷贝到Keil MDK-ARM中之后,编译出错了?
为什么在EWARM中可以编译通过,却在MDK-ARM中会出错呢?
strongerHuang
void Test(void)
{
char a; //a定义的位置
printf("a = %d\n", a);
char b; //b定义的位置
printf("b = %d\n", b);
for(char c = 0; c < 10; c++) //c定义的位置
{
char d;
printf("c = %d\n", c);
printf("d = %d\n", d);
}
}
strongerHuang
相信很多朋友在大学的时候都学过C和C++,学过C++的朋友都知道,上面那段代码变量定义的位置是很合理的。
void Test(void)
{
for(char c = 0; c < 10; c++)
{
printf("c = %d\n", c);
}
printf("c = %d\n", c); //这里有问题
}
strongerHuang
长按前往图中包含的公众号关注
免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!