Maison > Article > développement back-end > Où commence et où se termine l’exécution d’un programme C ?
L'entrée du programme C est la fonction principale. De manière générale, tant que l'opération normale se termine, elle commence à partir de la première phrase de la fonction principale et se termine par la dernière phrase. .
Par exemple :
int main()//程序开始 { printf("Hello!\n"); return 0;//程序结束,返回值 }
Mais si un retour (dans la fonction principale) ou une sortie (dans la fonction principale ou une sous-fonction) est rencontré au milieu de l'exécution du programme, le le programme prendra également fin.
Comment écrire la fonction principale en langage C
La fonction principale est la fonction d'entrée du programme C , c'est-à-dire que l'exécution du programme est A partir de la fonction principale, les appels à d'autres fonctions sont également appelés directement ou indirectement dans la fonction principale. Alors, qui appelle la fonction principale ? La réponse est le système d'exploitation. Depuis le développement du langage C, il existe de nombreuses façons différentes d'écrire la fonction principale. Explorons les différentes manières d'écrire . Remarque : L'environnement de test est Ubuntu 17.10 et la version GCC est 7.2.0.
NO.1
main(){}
Exemple :
#include ade979de5fc0e1ca0540f360a64c230b main(){ printf("Hello World\n"); }
NO.2
void main(){}
Exemple :
#include ade979de5fc0e1ca0540f360a64c230b void main(){ printf("Hello World\n"); }
NO.3
int main(){}
Exemple :
#include ade979de5fc0e1ca0540f360a64c230b int main(){ printf("Hello World\n"); return 0; }
NO.4
int main(void){}
Exemple :
#include ade979de5fc0e1ca0540f360a64c230b int main(void){ printf("Hello World\n"); return 0; }
NO.5
int main(int argc,char *argv[]){}
Exemple :
#include ade979de5fc0e1ca0540f360a64c230b int main(int argc,char *argv[]){ printf("Hello World\n"); return 0; }
NO.6
int main(int argc,char **argv){}
Exemple :
#include ade979de5fc0e1ca0540f360a64c230b int main(int argc,char **argv){ printf("Hello World\n"); return 0; }
À partir du test ci-dessus, méthode d'écriture 1 Il peut être compilé normalement sous la norme C90, mais un avertissement sera émis sous les normes C99 et C11 (la valeur de retour n'est pas écrite, la valeur de retour par défaut est int, ce qui équivaut à l'écriture de la méthode 1 et à l'écriture de la méthode 3). Les méthodes d'écriture 2 à 6 peuvent être compilées normalement selon les normes C90, C99 et C11. Parmi tant de manières d’écrire, lesquelles sont les manières standards d’écrire la fonction principale ? J'ai donc vérifié la méthode d'écriture standard de la fonction principale dans le document standard C, comme le montre la figure ci-dessous :
On peut voir dans le document standard que les méthodes d'écriture 4, 5 et 6 sont C'est la manière standard d'écrire la fonction principale. La méthode d’écriture 5 est équivalente à la méthode d’écriture 6. Alors pourquoi y a-t-il les méthodes d’écriture 1, 2 et 3 ? En effet, depuis la conception du langage C en 1972 jusqu'à la publication de la norme C90, différentes implémentations du langage C ont entraîné des différences dans la fonction principale. La méthode d'écriture 2 est fortement déconseillée car la fonction principale est appelée par le système d'exploitation. Le système d'exploitation jugera si le programme est exécuté correctement en fonction de la valeur de retour de la fonction principale. Si void est renvoyé, quel état représente-t-il ? De plus, certains compilateurs prennent en charge cette méthode d'écriture, d'autres ne la prennent pas en charge et tous les standards ne reconnaissent pas cette méthode d'écriture. Les méthodes d'écriture 1 et 3 sont encore à peine acceptables, mais il n'est pas recommandé d'écrire selon la méthode d'écriture standard. Pourquoi devrions-nous écrire selon la méthode d’écriture standard ? C'est parce que pour rendre les programmes C plus portables. La méthode d'écriture 5 est équivalente à la méthode d'écriture 6. Le premier paramètre représente le nombre de paramètres de fonction principaux, et le deuxième paramètre utilise des pointeurs pour pointer respectivement vers ces paramètres. argv[0] représente le nom du programme, argv[1] à argv[argc-1] représentent les paramètres du programme. Jetons un coup d'œil à la valeur de retour de la fonction principale, voir l'image ci-dessous
Comme le montre la figure, si la valeur de retour de la fonction principale est un type compatible de type int, la valeur renvoyée par la fonction principale avec exit équivaut à l'exécution de exit xxx. xxx représente la valeur renvoyée par la fonction principale. Si vous oubliez d'écrire l'instruction return, lorsque l'accolade fermante } du corps de la fonction principale est exécutée, la valeur par défaut 0 sera renvoyée. Renvoyer 0 signifie que l'exécution du programme est réussie et que le programme se termine. Si le type de retour de la fonction principale n'est pas un type compatible de type int, l'état renvoyé par le programme au système d'exploitation ne sera pas clair.
Adresse de téléchargement du document standard C :
Portail : http://download.csdn.net/download/u012219371/10184521
Introduction à la norme C :
Portail : http://blog.csdn.net/u012219371/article/details/78951972
Recommandations associées : Vidéo du didacticiel sur le langage C
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!