Bonjour,
je voudrai utiliser union pour séparer les élement d'un flux d'octets:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
union
{
		unsigned char data[20];
		struct
		{
			u_int8_t n1;
			u_int16_t n2;
			u_int32_t n3;
			...
		} b;
} a;
le soucis est dans ma structure, c'est que certaines informations dépassent la taille d'un int, ou d'un long, peu importe, c'est une donnée qui est trop longue pour le mettre dans un type primitif de nombre (int, double, ...). Donc je me tourne vers le char. Le soucis, c'est que lorsque je veux lire ma donee, je suis oblige de utiliser de la traiter comme une chaine de caractere, pas de soucis, mais pour la lire (avec printf par ex), etant donne que ce n'est qu'un simple lecture a partir d'une adresse, il me lit data, donc tout, alors que ce n'est pas que je souhaite.

Je sais très bien que je peux faire une copie en indiquant que je ne veux copier que x octets dans vers un espace allouer, mais j'aimerai eviter ça.

Donc n'y a t-il pas une autre alternative, comme un type plus ou moins neutre qui me permetrait de lire x octet, sans être obliger de passer vers une autre variable pour traiter l'information, car je ne veux pas modifier data.

Que me conseillez vous de faire ? ou n'est ce pas la bonne méthode pour résoudre ce type de problème ?

merci d'avance