Différence entre "Mal formé ; aucun diagnostic requis" et un comportement non défini
En C, il existe différentes catégories de comportement de programme irrégulier, y compris les éléments indéfinis, mal formés et définis par l'implémentation. Alors qu'un comportement indéfini implique que le programme est erroné, les programmes mal formés ne sont tout simplement pas bien formés.
Le terme « mal formé ; aucun diagnostic requis » suggère un programme qui viole les règles syntaxiques ou sémantiques, ce qui le rend erroné. Cependant, l’absence d’exigence de diagnostic indique qu’il s’agit d’un comportement indéfini. Cette incohérence survient parce que la norme C tente d'exiger des diagnostics pour toutes les erreurs, alors que la norme C considère toutes les erreurs comme un comportement indéfini.
La distinction entre "mal formé ; aucun diagnostic requis" et un comportement indéfini réside en fin de compte dans le contexte spécifique. Le premier est plus souvent associé à des erreurs de programmation, tandis que le second est associé à des problèmes d'exécution. Cependant, les deux cas impliquent que le comportement du programme est imprévisible et potentiellement erroné.
Par conséquent, bien que la formulation puisse différer, « mal formé ; aucun diagnostic requis » et un comportement indéfini véhiculent essentiellement le même sens : le programme ne peut pas être considéré comme bien formé et le comportement de l'implémentation n'est pas défini.
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!