Les types de booléens sont plus petits que les types Int, utilisez donc moins d'espace en mémoire. Selon le système que vous compilez / pour, un int peut comporter 4 à 8 octets, tandis qu'un booléen est un octet (comme on peut le voir dans cet article MSDN )
Ajoutez à cela quelques aspects de KISS et une bonne conception de programme. Vous comprendrez pourquoi il est préférable d'utiliser un bool pour stocker une variable qui n'aura jamais que 2 valeurs.
Pourquoi trop compliquer les choses avec un objet pouvant stocker une large gamme de valeurs, alors que vous êtes sûr de ne jamais avoir besoin de stocker qu'une seule de deux valeurs différentes?
Que se passe-t-il dans le système qui utilise un int si vous en stockez 75? Si vous avez ajouté des conditions supplémentaires
if (value >= 0 )
return true; //value is greater than 0, thus is true
else
return false; //value is 0 or smaller than 0, thus is false
ou
if (value == 0)
return false; //value is greater than 0, thus is true
else if (value == 1)
return true; //value is 0 or smaller than 0, thus is false
alors vous êtes couvert pour cette situation. Mais si vous ne l'avez pas fait, alors vous ne l'êtes pas.
Vous pouvez également avoir un cas (en fonction de la façon dont vous modifiez la valeur de l'int) où vous avez un dépassement de tampon, et la valeur "réinitialisée" à 0 ou à la limite inférieure de votre int (qui peut se situer quelque part dans le région de -127 à −9,223,372,036,854,775,708, en fonction de votre architecture cible ) que se passe-t-il dans votre code alors?
Cependant, si vous utilisiez un bool, vous pourriez utiliser quelque chose comme ceci:
if(continueBool == true)
return true;
else
return false;
Ou même:
return (continueBool== true) ? true : false;
ou même:
return continueBool;
Selon votre compilateur, il peut exister des optimisations qu'il peut effectuer sur du code utilisant Bools pour stocker des valeurs true / false mappées. Tandis que, il n’existera peut-être pas d’optimisations possibles pour Ints utilisé pour stocker les valeurs true / false mappées.
Nous devons également nous rappeler que le C ++ (avec C, Assembly et FORTRAN) est utilisé pour écrire du code très efficace, petit et rapide. Il serait donc préférable d’utiliser un booléen dans ce cas, surtout si vous utilisez des variables, de la mémoire, du cache ou du temps processeur.
Une question similaire serait: pourquoi devrais-je stocker un entier (valeur) dans un float? Réponse: Vous ne devriez pas, car cela ne sert à rien.
Longue histoire: En tant que professeur / tuteur / conférencier / professeur, il vous expliquera les tailles de différents types de valeur (au cas où vous l'auriez manquée) et leur importance dans le développement de logiciels.
J'espère que cela aide comme point de départ (j'espère aussi que cela ne semble pas aussi pédant)
int
est de stocker un entier et le but d'unbool
est de stocker une valeur booléenne (true
oufalse
). L'utilisation d'unebool
OMI reflète son utilisation bien mieux que celle d'unint
.