Maison > développement back-end > C++ > le corps du texte

Une variable booléenne est-elle garantie d'être convertie en 0 ou 1 lorsqu'elle est convertie en un entier ?

Linda Hamilton
Libérer: 2024-11-12 14:46:02
original
514 Les gens l'ont consulté

Is a bool variable guaranteed to convert to 0 or 1 when cast to an integer?

Valeurs garanties de Bool lors de la conversion en Int

Question :

Est-il garanti que la valeur stockée dans un bool la variable sera soit 0, soit 1 lorsqu'elle sera convertie en entier (int) ?

Réponse :

Oui, c'est garanti.

Raison :

Les langages de programmation C et C définissent spécifiquement le comportement des valeurs booléennes lorsqu'elles sont converties en entiers.

En C , la norme C (§4.5/4) déclare :

"Une rvalue de type bool peut être convertie en une rvalue de type int, false devenant zéro et vrai devenant un."

En C, la norme C (§6.3.1.2/1) déclare :

"Quand un la valeur scalaire est convertie en _Bool, le résultat est 0 si la valeur est égale à 0 ; sinon, le résultat est 1."

Lorsqu'une valeur _Bool est convertie en int, la valeur reste la même qu'elle est. , puisque int peut contenir à la fois 0 et 1 (§6.3.1.3).

Par conséquent, vous pouvez compter sur le fait qu'une variable booléenne contiendra toujours soit 0 ou 1 une fois converti en int.

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