Tableau de fonctions en C
Résolu/Fermé
UNIX/VI/SHELL
Messages postés
87
Date d'inscription
mercredi 12 juillet 2006
Statut
Membre
Dernière intervention
8 avril 2009
-
22 déc. 2008 à 16:36
UNIX/VI/SHELL Messages postés 87 Date d'inscription mercredi 12 juillet 2006 Statut Membre Dernière intervention 8 avril 2009 - 22 déc. 2008 à 20:47
UNIX/VI/SHELL Messages postés 87 Date d'inscription mercredi 12 juillet 2006 Statut Membre Dernière intervention 8 avril 2009 - 22 déc. 2008 à 20:47
A voir également:
- Tableau de fonctions en C
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Trier tableau excel - Guide
- Tableau de raccourcis clavier - Guide
2 réponses
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
22 déc. 2008 à 16:45
22 déc. 2008 à 16:45
Salut,
Exemple, on a deux nombres (3 et 5), si l'utilisateur rentre +, on fait l'addition, s'il rentre *, on fait la multiplication:
Exemple, on a deux nombres (3 et 5), si l'utilisateur rentre +, on fait l'addition, s'il rentre *, on fait la multiplication:
#include <stdio.h> typedef int (*op)(int, int); // Type pointeur vers fonction qui prend deux entiers en paramètres et retourne un entier int addition(int a, int b) { return a + b; } int multiplication(int a, int b) { return a * b; } //Tableau de pointeur de fonctions avec nos deux fonctions: op tab_op[] = { addition, multiplication }; int main() { int a = 3, b = 5; char c = getchar(); switch (c) { case '+': printf("%d\n", tab_op[0](a, b)); break; case '*': printf("%d\n", tab_op[1](a, b)); break; default: printf("%c toi même!\n", c); break; } return 0; }
UNIX/VI/SHELL
Messages postés
87
Date d'inscription
mercredi 12 juillet 2006
Statut
Membre
Dernière intervention
8 avril 2009
7
22 déc. 2008 à 16:57
22 déc. 2008 à 16:57
En fait ton programme et code est impecc. Merci !
UNIX/VI/SHELL
Messages postés
87
Date d'inscription
mercredi 12 juillet 2006
Statut
Membre
Dernière intervention
8 avril 2009
7
22 déc. 2008 à 17:02
22 déc. 2008 à 17:02
En fait non. Si je veut appeler une fonction (quelque soit la contenance), comment faire ?
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
>
UNIX/VI/SHELL
Messages postés
87
Date d'inscription
mercredi 12 juillet 2006
Statut
Membre
Dernière intervention
8 avril 2009
22 déc. 2008 à 17:03
22 déc. 2008 à 17:03
Comment ça?
UNIX/VI/SHELL
Messages postés
87
Date d'inscription
mercredi 12 juillet 2006
Statut
Membre
Dernière intervention
8 avril 2009
7
>
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
22 déc. 2008 à 17:21
22 déc. 2008 à 17:21
Si je veut qu'une fonction qui ne contienne que du texte s'affiche, je fais comment, puisque dans ton code, le programme n'affiche que des valeurs numériques.
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
>
UNIX/VI/SHELL
Messages postés
87
Date d'inscription
mercredi 12 juillet 2006
Statut
Membre
Dernière intervention
8 avril 2009
22 déc. 2008 à 17:58
22 déc. 2008 à 17:58
En ce tu retournes un char:
(char *)(*op)(void);
UNIX/VI/SHELL
Messages postés
87
Date d'inscription
mercredi 12 juillet 2006
Statut
Membre
Dernière intervention
8 avril 2009
7
>
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
22 déc. 2008 à 18:32
22 déc. 2008 à 18:32
Ca marche pas avec typedef. je comprend pas.
22 déc. 2008 à 16:47
22 déc. 2008 à 16:49
22 déc. 2008 à 16:50