打印
[ARM入门]

为啥不能在for循环中定义变量

[复制链接]
1025|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
钓鱼大师| | 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等多种品牌单片机,熟练使用单片机各种外设。

560

主题

4069

帖子

53

粉丝