Choix et attribution de fonctions svp aidez moi

Résolu
PontusFarnerud21 Messages postés 3 Date d'inscription samedi 4 novembre 2000 Statut Membre Dernière intervention 28 décembre 2004 - 28 déc. 2004 à 13:20
julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 - 28 déc. 2004 à 19:35
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

julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 15
28 déc. 2004 à 19:35
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]
3
julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 15
28 déc. 2004 à 13:54
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]
0
PontusFarnerud21 Messages postés 3 Date d'inscription samedi 4 novembre 2000 Statut Membre Dernière intervention 28 décembre 2004
28 déc. 2004 à 15:26
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
0
PontusFarnerud21 Messages postés 3 Date d'inscription samedi 4 novembre 2000 Statut Membre Dernière intervention 28 décembre 2004
28 déc. 2004 à 15:37
je precise que mes deux fonctions affichage_simple() et affichage_quadrillage() sont des fonctions void
0
Rejoignez-nous