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!