Embedded C :que fait var =0xFF ; fais?

Embedded C :que fait var =0xFF ; fais?


Je travaille avec Embedded C pour la première fois. Bien que mon C soit rouillé, je peux lire le code mais je ne comprends pas vraiment pourquoi certaines lignes sont comme elles le sont. Par exemple, je veux savoir si une variable est vraie ou fausse et la renvoyer à une autre application. Plutôt que de définir la variable sur 1 ou 0, l'implémenteur d'origine a choisi 0xFF.


Essaie-t-il de le définir sur un espace d'adressage ? ou alors pourquoi définir une variable booléenne sur 255 ?


Réponses :


0xFF définit tous les bits dans un char.


L'implémenteur d'origine a probablement décidé que le standard 0 et 1 n'était pas assez bon et a décidé que si tous les bits étaient désactivés est faux alors tous les bits sur est vrai .


Cela fonctionne car en C, toute valeur autre que 0 est vraie.
Bien que cela définisse tous les octets d'un caractère, cela fonctionnera également pour tout autre type de variable, car tout bit défini dans une variable la rend vraie.