PC Lint while(TRUE)vs for(;;)

Dan*_*llo 5 c embedded lint pc-lint

我是第一次使用PC Lint.当PC Lint警告我我的时候,我正在"linting"我的代码while(TRUE).

这就是它所说的:

716:while(1)... - 找到形式的构造,而(1)......被找到.

虽然这表示期望布尔值的上下文中的常量,但它可以反映编程策略,其中无限循环以此构造为前缀.因此,它被赋予一个单独的数字,并被放入信息类别.更常规形式的无限循环前缀是(;;).

我不明白这个说法.任何人都可以帮我理解吗?

Arm*_*yan 5

文本说尽管while(TRUE)(它被预处理while(1))是一个完全有效的无限循环,但写一个无限循环的更常规形式是

for(;;)
{
   ...
} 
Run Code Online (Sandbox Code Playgroud)

因为它根本不使用任何值,因此不易出错.