Little/big endian + enumeration

cs_ramones Messages postés 2 Date d'inscription mercredi 11 juin 2003 Statut Membre Dernière intervention 11 juin 2003 - 11 juin 2003 à 10:50
cs_ramones Messages postés 2 Date d'inscription mercredi 11 juin 2003 Statut Membre Dernière intervention 11 juin 2003 - 11 juin 2003 à 15:21
Bonjour,

Connaissez vous un moyen pour swapper les octets de poids faible et de poid fort dans la memoire sous visual C? Il s'agit en fait d'organiser les octets d'une variable en memoire à la mode motorola (big endian). Il doit sans doute exister une option de compilation quelque part mais je la trouve pas.

De meme, sous visual, un type enum est un entier (4 octets). Peut on demander au compilateur de choisir la place que l'enum prendra en memoire en fonction du nombre d'enumeration (1 octet pour moins de 255 enumerations par exemple)?

Merci.

2 réponses

theneoiceman Messages postés 78 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 23 avril 2010
11 juin 2003 à 13:36
En reponse à la question sur l'enum...
Un enum est de type entier comme tu l'as dit car l'enume représente une entier par definition. Or un entier a toujours (et je dis bien toujours sans exceptions) une taille de 4 octets quelle que soit sa valeur ! Donc tu ne peux pas reduire sa taille en fonction de son nombre d'énumérations....
Voila
@+
0
cs_ramones Messages postés 2 Date d'inscription mercredi 11 juin 2003 Statut Membre Dernière intervention 11 juin 2003
11 juin 2003 à 15:21
Il est tout a fait possible de demander a certains compilateurs de ne donner a un type enum que la place qui lui est strictement necessaire (1 octet pour moins de 255 enumerations par exemple). Voir DEFAUT_SHORT_ENUM sous gcc. Mon probleme est de faire la meme chose sous visual...
0
Rejoignez-nous