Maison > développement back-end > C++ > Un préprocesseur C peut-il redéfinir les mots-clés et quelles en sont les conséquences ?

Un préprocesseur C peut-il redéfinir les mots-clés et quelles en sont les conséquences ?

Mary-Kate Olsen
Libérer: 2024-11-22 10:29:11
original
796 Les gens l'ont consulté

Can a C   Preprocessor Redefine Keywords, and What Are the Consequences?

Préprocesseur C : redéfinir les mots-clés avec #define

Le débat entourant l'utilisation de #define pour redéfinir les mots-clés dans les préprocesseurs C a soulevé des questions sur la conformité aux normes. Cet article approfondit le problème pour fournir une compréhension claire de la licéité et des conséquences d'une telle pratique.

Un préprocesseur conforme aux normes peut-il permettre la redéfinition des mots clés ?

Oui , un préprocesseur C conforme aux normes permet l'utilisation de #define pour redéfinir les mots-clés du langage. Cependant, cela n'est pas obligatoire par la norme.

Un préprocesseur conforme aux normes doit-il autoriser la redéfinition des mots clés ?

Non, la norme n'exige pas qu'un préprocesseur conforme permette redéfinition des mots-clés. Cependant, la norme restreint l'utilisation de macros qui redéfinissent les noms déclarés ou définis dans les en-têtes standards inclus.

Conséquences de la redéfinition des mots-clés

Alors qu'un préprocesseur peut autoriser la redéfinition des mots-clés , cela ne rend pas les normes du programme qui en résultent conformes. La redéfinition des mots-clés peut entraîner des erreurs de compilation ou un comportement inattendu en raison de conflits avec la syntaxe et la sémantique des mots-clés d'origine.

Directives spécifiques

En C 0x, il y a eu une proposition pour interdire purement et simplement la redéfinition des mots clés, mais cela n'a pas été mis en œuvre. Le texte standard pertinent met simplement en garde contre la définition de macros pour des noms lexicalement identiques aux mots-clés dans les unités de traduction qui incluent des en-têtes standard.

Conclusion

Bien qu'il soit possible d'utiliser #define pour redéfinir les mots-clés dans les préprocesseurs C, cela se fait au détriment de la conformité aux normes pour le programme résultant. Il est crucial d'éviter de redéfinir les mots-clés pour garantir la compatibilité et la fiabilité du code C.

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