Protoype de fonction

Résolu
cestmoi1993 Messages postés 101 Date d'inscription   Statut Membre Dernière intervention   -  
cestmoi1993 Messages postés 101 Date d'inscription   Statut Membre Dernière intervention   -
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   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 101 Date d'inscription   Statut Membre Dernière intervention   55
 
D'accord, merci beacoup, probleme résolu !
0