Maison > Article > développement back-end > La redéfinition des mots-clés C avec les normes #define est-elle conforme ?
Définition du préprocesseur et redéfinition des mots clés en C
Dans le domaine des directives du préprocesseur C, un débat houleux a éclaté concernant la conformité aux normes de la redéfinition mots-clés utilisant #define. Un préprocesseur conforme peut-il permettre une telle pratique ?
Le préprocesseur et les mots-clés
Selon la norme C, le §17.4.3.1.1/2 interdit explicitement de redéfinir un mot-clé dans une unité de traduction qui comprend un en-tête de bibliothèque standard. Cette restriction garantit l'intégrité des composants de la bibliothèque standard.
C 0x et redéfinition des mots clés
Au départ, on croyait que C 0x (un intermédiaire désormais obsolète vers C 11 ) renforcerait cette interdiction pour interdire purement et simplement la redéfinition des mots clés (§17.6.3.3.1). Cependant, il a été précisé depuis que les règles de C 0x restent inchangées. La révision perçue résulte d'un réarrangement du texte qui a induit certains en erreur par inadvertance.
Conformité aux normes et redéfinition des mots-clés
Compte tenu des normes actuelles, un programme C qui redéfinit un mot-clé ne peut pas être considéré comme conforme aux normes. En violant la restriction relative à la redéfinition des mots clés, un tel programme viole l'intégrité du langage et sa sémantique intégrée.
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!