Protoype de fonction

Résolu
cestmoi1993 Messages postés 118 Statut Membre -  
cestmoi1993 Messages postés 118 Statut Membre -
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



A voir également:

2 réponses

KX Messages postés 19031 Statut Modérateur 3 020
 
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]
0
cestmoi1993 Messages postés 118 Statut Membre 55
 
D'accord, merci beacoup, probleme résolu !
0