7

初めて PC Lint を使用しています。PC Lint が私のwhile(TRUE).

これはそれが言うことです:

716: while(1) ... -- while(1) ... という形式の構造が見つかりました。

これは、ブール値を期待するコンテキストでは定数を表しますが、無限ループの前にこの構文を付けるというプログラミング ポリシーを反映している可能性があります。したがって、別の番号が与えられ、情報カテゴリに配置されています。無限ループ プレフィックスのより一般的な形式は for(;;) です。

私はこの声明を理解していませんでした。誰かがそれを理解するのを手伝ってくれますか?

4

2 に答える 2

6

テキストは、while(TRUE)(これは に前処理されますwhile(1)) は完全に有効な無限ループですが、無限ループを記述するより一般的な形式は次のとおりです。

for(;;)
{
   ...
} 

値をまったく使用しないため、エラーが発生しにくいためです。

于 2011-09-23T11:31:28.970 に答える
4

より従来の無限ループはfor(;;)であり、これは議論の余地のある主張であり、この構造は「情報のカテゴリ」の発見として分類されているfor(;;)と述べています。私はいつもこれらを自分自身として書いてきましwhile(1)for(;;)。期待どおりに動作する場合は、これに関する PC LINT の調査結果を無視するか、誰かが再定義した場合にループがまったく実行されないTRUEため誰かが再定義することを心配している場合は切り替えます。TRUE

于 2011-09-23T11:33:12.750 に答える