Bonjours,
J'ai une structure composé de 4 champs de 8 octets
Je travail sur un système 32 bits, et j'utilise une fonction qui prend comme paramêtre un (void*). J'aimerai lui passer ma structure, mais directement sa valeur, et non son adresse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 typedef struct { char a; char b; char c; char d; } MaStruct
Malheureusement, le compilateur n'accêpte pas cela. Comment puis-je lui "dire" que ma structure fait 32 bits et que cela ne donc aucun problème?
en gros, pouvoir faire :
Je peux le faire en "faintant" le compilateur, mais cela n'est pas vraiment accèptable pour mon projet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 // Code qui ne marche pas MaStruct maStruct; maStruct.a = 1; maStruct.b = 2; maStruct.c = 3; maStruct.d = 4; mailbox_send( (void*)maStruct );
Merci de votre attention
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 // Code qui marche, mais pas très beau MaStruct maStruct; int *i; maStruct.a = 1; maStruct.b = 2; maStruct.c = 3; maStruct.d = 4; i = (int*)&maStruct; mailbox_send( (void*)*i );
Jérôme
Partager