Maison  >  Article  >  développement back-end  >  La redéfinition des mots-clés C avec les normes #define est-elle conforme ?

La redéfinition des mots-clés C avec les normes #define est-elle conforme ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-21 04:03:17785parcourir

Is Redefining C   Keywords with #define Standards Compliant?

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!

Déclaration:
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