Accueil > Forum > > > > tableau de pointeurs de fonctions
tableau de pointeurs de fonctions
lundi 10 janvier 2005 à 17:06:59 |
tableau de pointeurs de fonctions

trapic
|
Bonjour,
J'aimerais réaliser une procédure appelant une liste de fonctions variables à argument variables.
Exemple:
//Le tableau des fonctions et les parametres
Sequence[3] = { lire(voie1), delai(1000), ecrire(voie2,valeur)};
//La procédure qui execute les fonctions du tableau
int ExecuteSequence (void)
{
for (i=0;i<3;i++)
{
//Appel des fonctions du tableau
???
}
}
//Ce qui est equivalent à
lire(voie1);
delai(1000);
ecrire(voie2,valeur);
Merci.
Patrick.
|
|
lundi 10 janvier 2005 à 18:24:38 |
Re : tableau de pointeurs de fonctions

CriPpLe
|
Oula mais qu'est ce que tu nous fait là  Un tableau est censé regrouper des variables de même type, alors que là tu y mets des fonctions et en plus qui ne renverrons peut être pas le même type d'élement. Je n'ai jamais utilisé ce type de code, donc je ne suis pas certain si ça marche ou pas mais logiquement c'est completement absurde. De plus ça t'allonge le code pour rien, pourquoi tu veux faire ça ?
|
|
mardi 11 janvier 2005 à 07:24:34 |
Re : tableau de pointeurs de fonctions

Nashua
|
Réponse acceptée !
Ca c'est du sport,
Tu code tes fonctions en premier, puis Tu declares ton tableau de fonctions.
Prends soins d'avoir toujours la meme signature pour les fonctions que tu desires inclure dans le tableau.
Dans le main appel ton pointeur sur fonction en lui passant les arguments.
Tu peux aussi faire des tableaux a plusieurs dimension.
Tu peux initialiser to tableau dans le main.
C'est super puissant, mais totalement incomprehensible. La maintenance est tres difficile.
Bonne chance.
/* mes fonctions avec la meme signature */ int f0(int a, int b){
return a - b;
}
int f1(int a, int b){
return a+b;
}
int f2(int a, int b){
return a * b;
}
/* la declaration du tableau 1 dimension seulemment mais possible de faire int (*f[]i [] ) (int, int) = { {f0,f1},{f3,f4}};*/
int (*f[]) (int, int) = {f0,f1,f2};
main(){
int ret ;
/* appel au pointeur sur f0() */
ret = (*f[0]) (1,2);
printf( "Ret = %d\n",ret);
ret = (*f[2]) (1,2);
printf( "Ret = %d\n",ret);
} Yves
|
|
mercredi 23 février 2005 à 13:30:40 |
Re : tableau de pointeurs de fonctions

trapic
|
Merci Yves!
Excuse moi pour ma réponse très tardive... mais ta réponse est très pertinente!
La finalité, un séquenceur en C pour l'embarqué.
Le tableau des séquences: const rom s_sequenceur st_sequenceur_test[39]= { //{"Message","Message Erreur",Fonction,{Paramètres},Nxt,Jmp,Exe,Lim-,Lim+,Comp,ErrPce}, {"T0:Inserer carte","Def tempo",Delai,{1000},1,38,1,0,0,0,0}, {"T0:Inserer carte","",DigitalInput,{SWITCH_CAPOT},2,38,1,1,1,1,0}, etc...
L'appel de la fonction: //============================================================================= //APPEL LA FONCTION if ( st_sequenceur[u8_index_sequenceur].f() == TX_ERROR ) { //erreur lors de l'exécution de la fonction u8_erreur_systeme = 1; } else { u8_erreur_systeme = 0; }
Une fonction: int Delai(void) { //lecture des paramètres de la séquence en cours u16_cpt_delai = (u16) st_sequenceur[u8_index_sequenceur].flt_parametres[0] / BASE_TEMPS; while (u16_cpt_delai > 0) { //watchdog(); //rafraichissement du watchdog (indispensable en cas de delai supérieur au temps du watchdog!) } //u16_cpt_delai décrémenté dans l'IT 10 ms return TX_SUCCESS; }
Patrick.
|
|
jeudi 24 février 2005 à 06:20:16 |
Re : tableau de pointeurs de fonctions

Nashua
|
Tres heureux de constater que cela a pu t'aider.
J'ai aussi fais de l'embarque (embedded Linux sur serie Motorola 857T) A+ Yves
|
|
Cette discussion est classée dans : variables, tableau, fonctions, pointeurs, procédure
Répondre à ce message
Sujets en rapport avec ce message
pointeurs et fonctions [ par alfred289 ]
Structures, pointeurs, malloc et realloc reunis !! :) [ par mindark ]
Alors la, je suis completement coulé !Voila mon probleme :J'ai une tableau "grid" qui est un tableau de structures "cell" :struct cell {bool bloquant;
Tableau de correspondance des fonctions c++ et de leur fichier #include [ par guguy ]
BonjourJ'aimerais savoir s'il serait possible de trouver un tableau de correspondance entre les fonctions c++ et leur fichier #include (ex : cout -> i
[C] Pb Malloc avec des variables... variables[?] [ par Cow_B ]
Salut à tous !! :)J'ai un tout petit souci :je voudrais faire une saisie au clavier d'un texte dont je ne connais pas la longueur. Voilà ce que je fai
Pointeurs et tableau de pointeurs [ par dragon3x6 ]
Salut à la communauté des developpeurs C,j'essai d'écrire un bout de code qui enregistre une liste de mots dans une structure de type arbre.Lorsqu'un
pointeurs de tableau [ par _Jonathan ]
salut a tousje cherche a lire dans un fichier (sa, sa va...) chaques lignes et les stocker dans un tableau.ex : *Tableau[];.........printf("texte 1 :
passer un tableau de pointeurs en parametres [ par achirane ]
bonjour,je debute en C (dur..) et j'ai un pb qui va surement vous faire ricaner ;-) :je voudrais passer un tableau de pointeurs en parametre a ma fonc
Pointeurs fonctions de types inconnus [ par Galmiza ]
Bien le bonjour,J`aimerai recuperer des pointeurs vers des fonctions dont je ne connais pas le type a l`avance.Ex:DWORD FonctionAlacon(char* pStr){ r
Variables globales ? [ par tintin72 ]
Bonjour, Dans mon application (écrite en C) j'ai un problème pour passer plusieurs handles à des fonctions.En effet, j'utilise des fonctions Windows q
Pointeurs et Tableau ansi que malloc [ par Hkz ]
Bonjour à tous ;) Alors voila pour mon prochaine programme j'ai besoin d'un tableau sans taille présise donc je me suis tourné vers les pointeurs
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|