Maison > développement back-end > C++ > « true » est-il toujours équivalent à « 1 » dans les conversions booléennes-entières C ?

« true » est-il toujours équivalent à « 1 » dans les conversions booléennes-entières C ?

Susan Sarandon
Libérer: 2024-11-29 15:20:10
original
262 Les gens l'ont consulté

Is `true` Always Equivalent to `1` in C   Boolean-Integer Conversions?

Conversion booléenne-entier en C

Dans le langage de programmation C, il est souvent nécessaire de convertir entre différents types de données. Une conversion courante concerne les valeurs booléennes et les nombres entiers. La question se pose : peut-on supposer que la valeur booléenne true est équivalente à l'entier 1 pour n'importe quel compilateur C ?

La réponse

Oui, on peut supposer en toute sécurité que (bool)true == (int)1 pour n'importe quel compilateur C. Cela est dû aux raisons suivantes :

  • Promotion intégrale : Lorsqu'une valeur booléenne est convertie en un entier, elle subit un processus appelé promotion intégrale. Cela convertit le booléen en un entier avec une valeur de 0 (pour faux) ou 1 (pour vrai).
  • Conversion implicite : Les conversions ne sont pas requises pour cette conversion. Le compilateur C effectuera automatiquement la conversion implicite en fonction du contexte de l'expression.

Par conséquent, l'expression true == 1 sera évaluée comme vraie, quel que soit le compilateur C utilisé. Ce comportement est spécifié dans la norme C (4.7 [conv.integral]) qui stipule que "Si le type 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!

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