Estoy usando PC Lint por primera vez. Estaba "deshilachando" mi código, cuando PC Lint me advirtió acerca de mi while(TRUE)
.PC Lint while (TRUE) vs for (;;)
Esto es lo que dice:
716: while (1) ... - Un constructo de la forma while (1) ... fue encontrado.
Mientras que esto representa una constante en un contexto que espera un booleano, puede reflejar una política de programación por la cual los bucles infinitos son con el prefijo de este constructo. Por lo tanto, se le da un número aparte y se ha colocado en la categoría informativa. La forma más convencional del prefijo de bucle infinito es para (;;).
No entendí esta afirmación. ¿Alguien puede ayudarme a entenderlo?
'while (TRUE)' puede no ser un bucle infinito si alguien establece 'TRUE' en' 0' mientras que no hay forma de que eso ocurra con 'for (;;)'. –
@Dan D., seguro que hay - estamos hablando del preprocesador después de todo. ¿Qué tal '' definir para (;;) if (0) '? ;-) –
Sé de lo que está hablando, pero esa es una explicación extraña que tengo que decir. –