[C] Type Byte?
RésoluUne tite question toute bête :
existe il un type "byte" en langage C?
Parce que j'ai récupéré un bout de code avec des déclarations de "byte" et ensuite à coup de gcc ca compile pas :S
il me manque une bibliothèque peut etre?
merci a vous!
6 réponses
-
attention, char c'est de (-127 à +127)
or les octets ne sont pas signés
voilà la bonne syntaxe :
typedef unsigned char Byte
(de 0 a255 )
A+ -
Le codage en RAM est le meme que tu stockes dans un char ou un unsigned char, ça ne change pas !
Tu peux donc faire comme tu veux !
Tout est ensuite une question d'interprétation, uniquement d'interprétation -
Il me semble qu'un char en gcc fait un octet.
Donc pour la correspondance, il suffirait de rajouter untypedef char byte;
dans le fichier d'en-tête.... -
Bonjour,
La réponse de samgcc (message #7) mais il manque le header : pour avoir un byte (entier non signé sur un octet, donc entre 0 et 255) :
#include <stdint.h> typedef uint8_t byte;
On peut aussi utiliser unsigned char c'est équivalent en terme d'implémentation mais un peu moins parlant en terme de lisibilité de code.
Bonne chance
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
Il me semble que ce type n'existe pas en directement en C.
Par contre, je m'en suis deja servi avec certains environnements de développement (notamment un envoirronnement developpé par Fujitsu pour simplifier la programmation de ces micro controleurs). Donc pour repondre a ta question, je dirai "non pas directement en C sauf dans certains cas bien précis mais cela ne fait pas partie du standard C il me semble".
-
Bonjour,
En effet le type BYTE n'est pas dans les référencement du C99. Aujourdhui, nous sommes dans le C19 et bientôt C23.
En programmation nous le définissons de cette manière dans un fichier d'en tête afin que le compilateur puisse l'interpréter :
typedef uint8_t byte;
typedef signed int int8_t __attribute__((__mode__(__QI__)));
typedef unsigned int uint8_t __attribute__((__mode__(__QI__)));
la solution est de taper cette ligne ci-dessous:
typedef unsigned char byte;
-
-
effectivement, j'avais réussi avec un typedef char byte, mais je te fais confiance blurk pour le unsigned!
merci encore!