-
char ou BYTE
Bonjour tout le monde,
Je sais qu'avec un char je peux compter de -128 à +127 et qu'avec un BYTE, je peux compter de 0 à 255.
J'ai rencontré dans un programme une définition d'un tableau de char, qui est ensuite passé à une fonction qui accepte en paramètre d'entrée un pointeur sur BYTE. La fonction met dans ce tableau des données venant du port série.
Peut-on utiliser indifféremment des tableaux de char ou des tableaux de BYTE dans un programme qui travaille sur des caractères?
Quelles sont les règles?
Dans quelles conditions utilise-t-on un tableau de char ou de BYTE?
Quels sont les risques?
Merci d'avance
Cordialement
Devconf77
-
Bonjour,
L'important est de vérifier qu'un BYTE n'est rien d'autre un unsigned char.(c'est le cas en C et C++ pour Windows).
Une fois cela vérifié, l'on sait que les deux types ont la même taille (Si un char faisait 16 bits et un BYTE 8, par exemple, il ne faudrait surtout pas faire de mélange).
Quand on sait ça, il n'y a plus vraiment de problème, puisque char et unsigned char sont tous les deux des types entiers. Le type de pointeur indique surtout la façon dont on les lira si on les caste en entier.
La plupart du temps, pour du texte, on utilise de bêtes char (Sauf si l'on doit utiliser des fonctions comme celles de ctype.h, qui nécessitent des valeurs positives : Un cast en unsigned char est alors nécessaire). Les BYTE, on a tendance à les réserver à des données binaires...