Posez votre question Signaler

Protoype de fonction [Résolu]

cestmoi1993 30Messages postés 11 décembre 2010Date d'inscription 6 avril 2012Dernière intervention - Dernière réponse le 28 oct. 2011 à 14:00
Bonjour,
je me pose une question sur les prototypes de fonctions :
Dans un code on déclare nos fonctions comme ceci (par exemple) :
int maFonction (int a, intb);
int main()
{
//instructions
}
ma question est : Pourquoi ne déclare t'on pas la fonction main comme ceci :
int main(); ?
J'ai lu sur le sdz que c'était une ligne inutile pour la plupart des compilateurs mais pourquoi ?
Merci par avance pour vos réponses .
P.S. j'utilise code::blocks, visual studio 2010, visual studio 11 suivant mes humeurs
Lire la suite 

Protoype de fonction »

2 réponses
Réponse
+0
moins plus
Tu n'es pas obligé de prototyper tes fonctions. Tu peux directement les écrire avec leur contenu. Le seul hic c'est que lorsque tu appelles une fonction dans une autre, son prototype doit avoir été défini plus haut dans le fichier.
Mettre le prototype de main avant la fonction main est inutile à part si tu appelles la fonction main dans une autre fonction (plutôt déconseillé)

Exemple :

int g();

int f() // pas besoin de prototyper f avant car il n'a jamais été utilisé plus haut
{
    return 2*g(); // on peut utiliser g qu'il a été prototypé plus haut
}

int g()
{
    return 1;
}

int main() // pas besoin de prototyper main avant car il n'a jamais été utilisé plus haut
{
    int n=f(); // on peut utiliser f qu'il a été prototypé par sa définition
    return 0;
}
Pour bien comprendre à quoi sert le prototypage tu pourrais réécrire ce code en définissant f, g, et main dans différent ordres, et en prototypant juste ce qu'il faut.
Les différents ordre possibles sont [f,g,main] (que je viens de faire), [f,main,g], [g,f,main], [g,main,f], [main,f,g], [main,g,f]
Ajouter un commentaire
Réponse
+0
moins plus
D'accord, merci beacoup, probleme résolu !
Ajouter un commentaire
Ce document intitulé « Protoype de fonction » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?