[ARM入门] 为啥不能在for循环中定义变量

[复制链接]
5221|3
 楼主| 呐咯密密 发表于 2025-4-30 16:05 | 显示全部楼层 |阅读模式
for(int i=0;i<5;i++)这种会报错咋回事,我记得以前好像是可以的啊
钓鱼大师 发表于 2025-5-5 16:30 | 显示全部楼层
会不会和编译器有关?
GlenX 发表于 2025-5-8 09:27 | 显示全部楼层
可以定义,但不能下次还记得上次的值,这是不可能的。
也就是这个变量不能作为下次进来的输入值,要么默认这个值总是从一个不确定的值开始的。
dffzh 发表于 2025-5-9 14:03 | 显示全部楼层
这个主要由编译器版本标准决定的:
在 C 或 C++ 中,在某些如 C89 或早期的 C++ 标准的旧版本编译器中可能会报错的;
因为在这些标准中,循环变量 i 必须在循环外部声明,而不能直接在 for 循环内部定义;
C99 及以后的标准允许在for循环内部声明变量。

有些场景可能还不允许在代码之间定义变量,如以下的操作定义变量i,编译会报错:
代码语句1;
int i;
代码语句2;
这个时候我们就没办法以“就近使用就近定义”的原则进行变量定义,而只能统一在代码开始之前定义好所有需要用到的变量。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:苏州澜宭自动化科技嵌入式工程师
简介:本人从事磁编码器研发工作,负责开发2500线增量式磁编码器以及17位、23位绝对值式磁编码器,拥有多年嵌入式开发经验,精通STM32、GD32、N32等多种品牌单片机,熟练使用单片机各种外设。

568

主题

4085

帖子

56

粉丝
快速回复 在线客服 返回列表 返回顶部