Maison > développement back-end > C++ > `(bool)true` est-il toujours équivalent à `(int)1` en C ?

`(bool)true` est-il toujours équivalent à `(int)1` en C ?

Barbara Streisand
Libérer: 2024-11-28 09:49:11
original
977 Les gens l'ont consulté

Is `(bool)true` Always Equivalent to `(int)1` in C  ?

Casting de type dans les expressions C : (bool)true et (int)1

En C, il est courant d'utiliser le transtypage pour convertir les données d'un type à un autre. Cette question explore si nous pouvons supposer en toute sécurité l'équivalence de (bool)true et (int)1 dans les compilateurs C.

L'équivalence

La conversion de bool en int est défini par le standard C dans la section 4.7 [conv.integral]/4. Il indique que si le type source est bool, la valeur true est convertie en un. Cela signifie que dans l'expression (bool)true == (int)1, la valeur bool sera promue en int et aura une valeur de 1.

Casting redondant

Les conversions dans l'expression (bool)true == (int)1 sont techniquement redondantes. La valeur booléenne sera automatiquement promue en int par le compilateur et la comparaison fonctionnera comme prévu sans les conversions explicites.

Compatibilité du compilateur

L'équivalence entre ( bool)true et (int)1 sont garantis par la norme C. En tant que tel, c'est une hypothèse sûre à faire pour tout compilateur C qui adhère à la norme.

Conclusion

En C , nous pouvons supposer en toute sécurité (bool)true == (int)1 pour tous les compilateurs C qui suivent le standard C. Les transtypages sont redondants et peuvent être omis sans affecter le résultat de la comparaison.

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