[STM32N6] 例程中看到这样一个for循环

[复制链接]
692|6
地瓜patch 发表于 2025-8-12 16:45 | 显示全部楼层 |阅读模式

下边这个循环语句,我的理解是三个等号同时成立的话,进入循环体。否则不进入。请教这样理解是否正确?

for (session_done = 0, errors = 0, session_begin = 0; ;)
  {
    .........
}

那么,若是理解正确的话,能否写成如下的while循环,同样三个等号同时成立的话,进入循环体。否则不进入。
while (session_done = 0, errors = 0, session_begin = 0)
  {
    .........
}

zhoupxa 发表于 2025-8-12 19:37 | 显示全部楼层
for循环不是赋初值吗?  while循环也是赋值而非条件判断
 楼主| 地瓜patch 发表于 2025-8-12 21:10 | 显示全部楼层
zhoupxa 发表于 2025-8-12 19:37
for循环不是赋初值吗?  while循环也是赋值而非条件判断

这种用法也是第一次见
sfd123 发表于 2025-8-13 14:45 | 显示全部楼层
你的理解是不对的,那只是初值,条件是后边的,在你这里 是空的
 楼主| 地瓜patch 发表于 2025-8-13 14:56 | 显示全部楼层
sfd123 发表于 2025-8-13 14:45
你的理解是不对的,那只是初值,条件是后边的,在你这里 是空的

条件的确是空的,这个语句实现什么功能呢?相当于while(1)死循环?
sfd123 发表于 2025-8-15 13:28 | 显示全部楼层
地瓜patch 发表于 2025-8-13 14:56
条件的确是空的,这个语句实现什么功能呢?相当于while(1)死循环?

可以在  循环体 里边 做退出循环的判断,满足条件  break 就退出来了啊
sfd123 发表于 2025-8-15 13:29 | 显示全部楼层
地瓜patch 发表于 2025-8-13 14:56
条件的确是空的,这个语句实现什么功能呢?相当于while(1)死循环?

譬如
for (session_done = 0, errors = 0, session_begin = 0; ;)
  {
    if(errors != 0) break;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:出一块TI-PLABS-AMP-EVM

1932

主题

15224

帖子

31

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