Maison > développement back-end > C++ > le corps du texte

Quelle syntaxe de boucle sans fin en C/C est la meilleure : for(;;), while(1) ou while(true) ?

Linda Hamilton
Libérer: 2024-11-15 00:39:02
original
181 Les gens l'ont consulté

Which Endless Loop Syntax in C/C   is Best: for(;;), while(1), or while(true)?

Boucle sans fin en C/C

Question :

Différentes méthodes existent pour créer un boucle sans fin en C/C , y compris for(;;), while(1) et do {} while(1). Existe-t-il une forme préférée et les compilateurs modernes optimisent-ils l'une par rapport aux autres ?

Réponse :

Alors que les préférences personnelles alimentent de nombreuses discussions sur ce sujet, l'analyse objective révèle la suivant :

pour(;;)

  • Canonique forme, cité dans l'ouvrage faisant autorité "The C Programming Language" de Kernighan et Ritchie.
  • Obscur en raison du traitement unique par la norme C des éléments omis dans la syntaxe de la boucle for.

while(1)

  • Plus lisible que for(;;), mais repose sur Interprétation par C des expressions non nulles comme vraies.
  • Peut déclencher des avertissements du compilateur ("la condition est toujours vraie").

while(true)

  • Destiné à améliorer la lisibilité sur while(1).
  • Déclenche toujours le même compilateur avertissements.
  • Nécessite l'utilisation de l'en-tête stdbool.h et du type bool, qui peuvent ne pas être pris en charge sur toutes les plates-formes.

Optimisation du compilateur moderne

Les compilateurs modernes reconnaissent toutes ces formes de boucles comme des boucles infinies et effectuent des optimisations équivalentes. Ils peuvent émettre des avertissements en fonction des paramètres du compilateur, mais le code optimisé généré est le même.

Conclusion

En fin de compte, le choix de la syntaxe de boucle sans fin est une question personnelle préférence. Cependant, étant donné la large reconnaissance de for(;;), son évitement des avertissements du compilateur et la redondance des efforts de lisibilité supplémentaires pour ceux qui sont familiers avec C/C , cela reste un choix raisonnable.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal