Maison  >  Article  >  développement back-end  >  Les constantes non définies sont-elles évaluées à 0 dans les conditions #if ?

Les constantes non définies sont-elles évaluées à 0 dans les conditions #if ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-12 17:03:02602parcourir

Do undefined constants evaluate to 0 in #if conditions?

Constantes non définies et conditions #if

Lors de l'utilisation du préprocesseur C ou C, il est essentiel de comprendre le comportement des constantes non définies dans #if conditions.

Question :

Peut-on compter sur des constantes non définies pour avoir une valeur de 0 pour l'évaluation dans des conditions #if ?

Réponse :

Oui, des constantes non définies peuvent être invoquées à cet effet.

Explication :

Selon la norme C99 (§ 6.10.1 ¶3), et de même dans le standard C (§16.1 ¶4) :

  • Après les expansions de macro et les opérations définies unaire, tous les identifiants restants (y compris les constantes non définies) sont remplacés par le pp -numéro 0.

Par conséquent, il est prudent de supposer que les constantes non définies seront évaluées à 0 dans les conditions #if, ce qui garantit un comportement cohérent du préprocesseur.

Remarque :

En C , les mots-clés true et false ont des significations particulières lors du prétraitement et ne sont pas remplacés par 0.

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