Maison > développement back-end > C++ > Pouvez-vous redéfinir les mots-clés C à l'aide de #define tout en garantissant la conformité aux normes ?

Pouvez-vous redéfinir les mots-clés C à l'aide de #define tout en garantissant la conformité aux normes ?

Susan Sarandon
Libérer: 2024-11-20 15:52:16
original
413 Les gens l'ont consulté

Can You Redefine C   Keywords Using #define While Maintaining Standards Compliance?

Redéfinition des mots-clés à l'aide de #define : conformité aux normes en C

Le préprocesseur C permet la redéfinition des mots-clés du langage à l'aide de la directive #define. Cependant, le respect des normes dicte des limites à cette pratique.

Restrictions standard

  • Inclusion de l'unité de traduction : Selon le §17.4.3.1.1/2, une traduction une unité qui inclut un en-tête de bibliothèque standard ne peut pas définir de macros pour les noms déclarés ou définis dans cet en-tête, y compris mots-clés.
  • C 0x (règle retirée) : Une modification proposée dans C 0x interdisait initialement de redéfinir les mots-clés à l'aide de #define (§17.6.3.3.1). Cependant, cette règle a été retirée et les restrictions existantes restent en place.

Conformité du programme

Un programme C qui redéfinit un mot-clé de langue viole les règles standard au sein de l'unité de traduction qui comprend la bibliothèque standard en-têtes. Par conséquent, un tel programme ne peut pas être considéré comme conforme aux normes.

Conclusion

Bien que la redéfinition de mots-clés à l'aide de #define soit techniquement possible en C , elle doit être évitée dans les programmes conformes aux normes. Les restrictions imposées par la norme C servent à garantir la portabilité du code et à éviter les conflits avec la bibliothèque standard et d'autres codes qui attendent que les mots-clés aient leurs significations prédéfinies.

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 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