bonjour,
je souhaite créer une table d'indirection pour une fonction dont un paramètre peut être en 16 ou 32 bits !
je m'explique; dans un fichier "fic1.c" j'ai un ensemble d'éléments qui appellent des fonctions définies dans "fic2.c".
mais moi après param2 je le cast pour le récupérer que sur 16 bits.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if ( 1 < param1 < n) { fic2_fonction1 (u8 param1, u16 *param2) } if ( n <= param1 < N) { fic2_fonction2 (u8 param1, u32 *param2) }
moi, dans mon fichier "fic1" je veux me détacher des fonctions "fic2". donc je crée une table d'indirection :
et ça me permet ensuite de rendre àa parametrable :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 typedef struct { u8 index; void (* pointeurfonction)(u8, ??????????); } Tableconfig; const Tableconfig TableIndirection[ N ] = { { index1 ,fic1_fonction1}, { index2 ,fic1_fonction1}, { index3 ,fic1_fonction2}, ... };
=> donc comment je peux gérer le paramètre sur 16 ou 32 bits, sachant que moi je récuppère que la valeur sur 16 bits ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 #define fic1_fonction1 fic2_fonction1 #define fic1_fonction2 fic2_fonction2
=> avez vous une autre idée pour faire cela (autre façon de faire la table d'indirection, fonctions callback) ?
merci d'avance
Partager