Maison >développement back-end >C++ >C garantit-il que « (bool)true » est égal à « (int)1 » ?

C garantit-il que « (bool)true » est égal à « (int)1 » ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-20 15:06:15334parcourir

Does C   Guarantee that `(bool)true` Equals `(int)1`?

Les compilateurs C peuvent-ils garantir (bool)true Equals (int)1 ?

La question se pose : peut-on supposer que (bool) true équivaut à (int)1 quel que soit le compilateur C utilisé ?

Réponse :

Oui, cette hypothèse est vraie pour tous les compilateurs C. Les moulages dans l’expression sont superflus. La valeur bool est directement convertie en int, comme l'exige la promotion intégrale, ce qui donne un int d'une valeur de 1.

Référence :

Selon 4.7 [conv .integral] / 4, "Si le type de source est bool... true est converti en un."

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