Maison > développement back-end > C++ > Les préprocesseurs C peuvent-ils redéfinir les mots-clés tout en restant conformes aux normes ?

Les préprocesseurs C peuvent-ils redéfinir les mots-clés tout en restant conformes aux normes ?

Barbara Streisand
Libérer: 2024-12-11 11:40:12
original
376 Les gens l'ont consulté

Can C   Preprocessors Redefine Keywords and Still Be Standards Compliant?

Redéfinition des mots-clés dans le prétraitement C : conformité aux normes

L'utilisation de #define pour redéfinir les mots-clés du langage a suscité un débat dans la communauté des développeurs. Cet article approfondit les normes concernant cette pratique.

Conformité aux normes avec des mots-clés redéfinis

Selon la norme C (§17.4.3.1.1/2), un Le préprocesseur C conforme aux normes ne peut pas redéfinir les mots-clés si une unité de traduction inclut un en-tête de bibliothèque standard. Cette restriction est levée pour les unités de traduction sans en-têtes standards.

En C 0x, la deuxième phrase du paragraphe susmentionné semblait interdire purement et simplement la redéfinition des mots-clés, prêtant à confusion. Cependant, Ken Bloom a précisé que les règles n'ont pas changé dans C 0x. Le texte a simplement été réorganisé d'une manière pouvant prêter à confusion.

Conséquences de non-conformité

Si un programme C redéfinit un mot-clé de langage, il ne le fait pas intrinsèquement deviennent non conformes. Cependant, il n’est pas garanti qu’il soit portable sur différents compilateurs ou plates-formes. De plus, un tel programme peut rencontrer un comportement inattendu ou des erreurs s'il tente d'interagir avec les en-têtes de bibliothèque standard qui attendent la définition du mot clé d'origine.

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