Я использую PC Lint в первый раз. Я «проверял» свой код, когда PC Lint предупреждает меня о моем while(TRUE)
.
Вот что он говорит:
716: while(1) ... -- Найдена конструкция вида while(1) ....
В то время как это представляет собой константу в контексте, ожидающем логическое значение, это может отражать политику программирования, согласно которой бесконечные циклы имеют префикс этой конструкции. Поэтому ему присвоен отдельный номер и он помещен в информационную категорию. Более обычная форма префикса бесконечного цикла for(;;).
Я не понял этого утверждения. Может ли кто-нибудь помочь мне понять это?
while(TRUE)
не может быть бесконечным циклом, если кто-то устанавливаетTRUE
в0
, в то время как это никак не может произойти сfor(;;)
. - person Dan D.   schedule 23.09.2011#define for(;;) if(0)
? ;-) - person Péter Török   schedule 23.09.2011#define for(;;) if(0)
недопустимо, потому что for(;;) не является идентификатором и не может быть проанализировано как объявление макроса - person Armen Tsirunyan   schedule 23.09.2011TRUE
, он с тем же успехом может переопределитьfor
:-( - person Péter Török   schedule 23.09.2011