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 write c ✓ - Forum C
- Fonction si avec date ✓ - Forum Excel
- Ajout snap par la fonction - Forum Snapchat
- Fonction find vba - Astuces et Solutions
2 réponses
Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 328
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