[C] Type Byte?

Résolu
khaz Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour les gens!

Une 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

blurk Messages postés 486 Date d'inscription   Statut Membre Dernière intervention   160
 
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+
9
fvirtman
 
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
3
blurk
 
en fait il va y avoir interprétation lors de l'utilisation de printf("%c",la_variable), sprintf(ladestination,"%c",la_variable) ou putc(la_variable)
0
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
Il me semble qu'un char en gcc fait un octet.

Donc pour la correspondance, il suffirait de rajouter un
typedef char byte;
dans le fichier d'en-tête....
1
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 

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

1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Kermitt31 Messages postés 3679 Date d'inscription   Statut Contributeur Dernière intervention   495
 
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".
0
samgcc
 

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;
0
khaz Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   1
 
effectivement, j'avais réussi avec un typedef char byte, mais je te fais confiance blurk pour le unsigned!

merci encore!
0