Pourquoi une fonction ne peut-elle pas aller après Main

Pourquoi ne puis-je pas mettre une fonction après main, Visual Studio ne peut pas construire le programme. Est-ce une folie C ++ ou une folie Visual Studio?

par exemple.

int main() { myFunction() } myFunction(){} 

produira une erreur que main ne peut pas utiliser myFunction

Vous pouvez, mais vous devez le déclarer à l’avance:

 void myFunction(); // declaration int main() { myFunction(); } void myFunction(){} // definition 

Notez qu’une fonction nécessite un type de retour. Si la fonction ne renvoie rien, ce type doit être void .

Vous ne pouvez pas utiliser un nom / symbole qui n’a pas encore été déclaré . C’est la raison entière.

C’est comme ça:

 i = 10; //i not yet declared int i; 

C’est faux aussi, exactement pour la même raison. Le compilateur ne sait pas ce que i – il se fiche de ce que ce sera .

Tout comme vous écrivez ceci (ce qui a également un sens pour vous ainsi que pour le compilateur):

 int i; //declaration (and definition too!) i = 10; //use 

tu dois écrire ceci:

 void myFunction(); //declaration! int main() { myFunction() //use } void myFunction(){} //definition 

J’espère que cela pourra aider.

Parce que

 myFunction() 

doit être déclaré avant de l’utiliser. C’est le comportement de c ++ en général.

vous devez transmettre une fonction afin que main puisse savoir qu’il en existe.

 void myFunction(); int main() { myFunction(); } void myFunction(){} 

N’oubliez pas de mettre ; après chaque commande.

Les fonctions doivent être déclarées avant de pouvoir être utilisées:

 void myFunction(); int main() { myFunction(); } void myFunction() { ... } 

Bien sûr, vous pouvez le déclarer en premier. Ou mieux, mettez la déclaration dans un en-tête et #include -la dans le fichier source.

 void myFunction(); int main() { myFunction(); } void myFunction(){} 

spécifier la déclaration de la fonction avant d’appeler la fonction .Pour que le compilateur sache le type de retour et la signature

Vous devez déclarer la fonction avant.

 void myFunction(); int main() { myFunction() } myFunction(){} 

la plupart des langages de programmation informatique utilisent une approche de haut en bas, ce qui signifie que le code est compilé à partir du haut. Lorsque nous définissons une fonction après une fonction principale et que nous l’utilisons dans la [myFunction ()] principale, le compilateur pense “qu’est-ce que c’est. Je n’ai jamais vu cela auparavant” et génère une erreur disant que maFonction n’est pas déclarée. Si vous souhaitez utiliser cette méthode, vous devez fournir un prototype pour cette fonction avant de définir la fonction principale. Mais certains compilateurs acceptent sans prototype.

 #include void myFunction(); //prototype int main() { myFunction(); //use } myFunction(){ //definition .......; }