Bonjour,
sint16 parametrage_ecriture(U_ValeurParametre *u32_Valeur)
et d'accéder à ta donnée par pointeur
u32_Valeur->u32_ValeurParametre = 1234 ;
Mais je te conseillerai d'ajouter dans ton union un champ indiquant le type utilisé. Par exemple l'union est encapsulée dans une structure :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| enum enTYPEVAL {
INTVALUE,
FLOATVALUE,
LASTTYPE,
NOTYPEVAL = -1
} ;
struct {
enTYPEVAL typValue ;
union {
uint32_t intValue ;
float floatValue ;
} ;
} U_ValeurParametre ;
void printValeur(U_ValeurParametre *value)
{
if(value->typValue==INTVALUE)
printf("Valeur entière = %d\n", value->intValue) ;
else if(value->typValue==FLOATVALUE)
printf("Valeur décimal = %g\n", value->floatValue) ;
else
printf("Type inconnue !\n") ;
}
int main(void)
{ U_ValeurParametre monIntValeur, monFloatValeur ;
monIntValeur.typValue = INTVALUE ;
monIntValeur.intValue = 123456 ;
monFloatValeur.typValue = FLOATVALUE ;
monFloatValuer.floatValue = 1234.56 ;
printValeur(&monIntValeur) ;
printValeur(&monFloatValeur) ;
} |
ATTENTION, je n'ai pas testé le code ci-dessus.
Partager