MCU 的开发过程中,我们绝大部分情况下还是在使用前后台系统,当然即便我们跑了一些实时性的操作系统,也避免不了使用一些无限循环的处理。
那么处理无限循环的语句目前有两种写法,我常看到一些初级工程师会使用 while(1),而在一些操作系统源码中看到的更多的是 for(;;)。
如果在 C99 的版本下,我们使用 for 来写循环看起来更紧凑。
// while 循环的初始化
int i = 0;
while (i < 5) {
// ...
i++;
}
// for 循环的初始化
for (int i = 0; i < 5; i++) {
// ...
}
另外,我十几年前在赛普拉斯的单片机上开发,因为 flash 空间很小,需要极致优化代码来进行空间压缩,这里我选择了 for 循环的写法可以让空间多出一个字节来,不过现在的很多编译器都已经更新了很多年了,至少在主流的 arm 平台上他们的汇编代码都是一样的了。 |