Choix et attribution de fonctions svp aidez moi [Résolu]

Signaler
Messages postés
3
Date d'inscription
samedi 4 novembre 2000
Statut
Membre
Dernière intervention
28 décembre 2004
-
Messages postés
452
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
19 décembre 2008
-
bonjour et merci d'avance.

question surement toutes simples pour des spécialistes.

je possède deux fonctions hors de mon main affichage_simple() et affichage_quadrillage().

dans mon main qui est assez long je veux utiliser la fonction affichage().

je veux donc suivant la valeur que jorai demander pouvoir attribuer a affichage() soit affichage_simple() soit affichage_quadrillage().

printf("\n Affichage: Tapez 1 Pour Quadrillage, 0 Sinon: ");
scanf("%d",&q);

if (q==0)
{
/* affichage() = ? */
}
else if(q==1)
{

}

que dois je faire?
merci

4 réponses

Messages postés
452
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
19 décembre 2008
10
desolé pour le temps de reponse, j'étais pas chez moi!
excuse petite erreur dans ce que je t'ai passé!

typedef void (*fptr)(void);
fptr affichage[2];

tu initialises:
affichage[0]=&affichage_simple;
affichage[1]=&affichage_quadrillage;

et tu appelles:
affichage[0]();

Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
Messages postés
452
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
19 décembre 2008
10
Si les prototypes de tes 2 fonctions affichage_quadrillage et affichage_simple sont les memes, tu peux utiliser un tableau de pointeur de fonctions!

exemple:
typedef int (*fptr) (int, long) //pour une fonction qui renvoie int et qui prend int et long en param
fptr affichage[2];

au debut de ton prog tu initialises affichage:
affichage[0]=&affichage_simple;
affichage[1]=&affichage_quadrillage;
et pour appeler affichage_simple tu n'as qu'à faire affichage[0] dans ton programme!
C'était ça que tu voulais?

Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
Messages postés
3
Date d'inscription
samedi 4 novembre 2000
Statut
Membre
Dernière intervention
28 décembre 2004

merci de ta réponse.

je ne comprends pas trop le début:

typedef int (*fptr) (int, long) //pour une fonction qui renvoie int et qui prend int et long en param
fptr affichage[2];

tu écrirais exactement ca ?
car il me met des erreurs
Messages postés
3
Date d'inscription
samedi 4 novembre 2000
Statut
Membre
Dernière intervention
28 décembre 2004

je precise que mes deux fonctions affichage_simple() et affichage_quadrillage() sont des fonctions void