Maison > développement back-end > C++ > Les constantes non définies sont-elles évaluées comme 0 dans les macros C et C `#if` ?

Les constantes non définies sont-elles évaluées comme 0 dans les macros C et C `#if` ?

Susan Sarandon
Libérer: 2024-11-10 16:29:02
original
740 Les gens l'ont consulté

Are Undefined Constants Evaluated as 0 in C and C   `#if` Macros?

Une constante non définie est-elle évaluée comme 0 dans les macros C et C #if ?

Une hypothèse courante est que les préprocesseurs interprètent les constantes non définies comme 0 lorsqu'elles sont utilisées dans des conditions #if . Mais peut-on s'y fier de manière cohérente ou cela donne-t-il des résultats imprévisibles ?

La réponse réside dans les normes C99 et C 17.

Norme C99

La norme C99 précise au §6.10.1¶3 que :

"Après tous remplacements en raison de l'expansion de la macro et de l'opérateur unaire défini, tous les identifiants restants sont remplacés par le numéro pp 0."

Norme C 17

De même, le La norme C 17 indique au §16.1 ¶4 :

"Après que tous les remplacements dus à l'expansion de la macro et à l'opérateur unaire défini aient été effectués, tous les identifiants et mots-clés restants, à l'exception de vrai et faux, sont remplacés par le numéro pp 0."

Conclusion

Par conséquent, il est effectivement fiable en C et C pour supposer que les constantes non définies sont évaluées comme 0 dans les conditions #if. Ce comportement est explicitement défini dans les normes du langage, garantissant une exécution cohérente sur différents compilateurs et plates-formes.

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