Prototype de fonction C++
Résolu/Fermé
jihane jihane
Messages postés
65
Date d'inscription
samedi 29 octobre 2011
Statut
Membre
Dernière intervention
11 avril 2012
-
7 nov. 2011 à 09:13
jihane jihane Messages postés 65 Date d'inscription samedi 29 octobre 2011 Statut Membre Dernière intervention 11 avril 2012 - 7 nov. 2011 à 17:06
jihane jihane Messages postés 65 Date d'inscription samedi 29 octobre 2011 Statut Membre Dernière intervention 11 avril 2012 - 7 nov. 2011 à 17:06
A voir également:
- Prototype de fonction C++
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Fonction trier excel - Guide
- Fonction ms dos non valide - Forum Windows 8 / 8.1
2 réponses
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
7 nov. 2011 à 09:22
7 nov. 2011 à 09:22
le nom de la fonction ce qu'elle retourne ainsi que le nombre et le type des arguments.
silentData
Messages postés
183
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
18 octobre 2013
40
7 nov. 2011 à 09:33
7 nov. 2011 à 09:33
Un prototype te permet de déclarer une fonction que tu implémente plus bas.
Imagine ceci :
Le problème du code ci-dessus (outre le fait qu'il ne veut rien dire et que c'est le bordel), est que la fonction a() appelle la fonction b() et inversement. Or, b() n'existe pas pour a() car il est déclaré au dessous. Et si on mets b() avant a(), c'est a() qui n'existera pas pour b().
Ainsi, tu peux régler ce problème avec un prototype :
Les 3 prototypes permettent de déclarer une fonction pour la rendre visible à a(), tout en implémentant leur contenu plus tard. Un prototype doit avoir la même signature que la fonction elle-même.
Voilà la principale utilité des prototype.
Imagine ceci :
int i = 3; void a() { if (i != 0) { b(); } c(); } void b() { i--; if (i > 0) { c(); } } void c() { printf("lol"); }
Le problème du code ci-dessus (outre le fait qu'il ne veut rien dire et que c'est le bordel), est que la fonction a() appelle la fonction b() et inversement. Or, b() n'existe pas pour a() car il est déclaré au dessous. Et si on mets b() avant a(), c'est a() qui n'existera pas pour b().
Ainsi, tu peux régler ce problème avec un prototype :
int i = 3; void a(); void b(); void c(); void a() { if (i != 0) { b(); } c(); } void b() { i--; if (i > 0) { c(); } } void c() { printf("lol"); }
Les 3 prototypes permettent de déclarer une fonction pour la rendre visible à a(), tout en implémentant leur contenu plus tard. Un prototype doit avoir la même signature que la fonction elle-même.
Voilà la principale utilité des prototype.
jihane jihane
Messages postés
65
Date d'inscription
samedi 29 octobre 2011
Statut
Membre
Dernière intervention
11 avril 2012
7 nov. 2011 à 17:06
7 nov. 2011 à 17:06
Merci bcp,j'ai bien compris d'après votre explication :)
7 nov. 2011 à 17:02