Maison > développement back-end > Tutoriel C#.Net > Où commence et où se termine l'exécution d'un programme C ?

Où commence et où se termine l'exécution d'un programme C ?

青灯夜游
Libérer: 2022-01-12 15:46:18
original
23760 Les gens l'ont consulté

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;//程序结束,返回值
}
Copier après la connexion

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(){}
Copier après la connexion

Exemple :

#include <stdio.h>
main(){
	printf("Hello World\n");
}
Copier après la connexion



NO.2

void main(){}
Copier après la connexion

Exemple :

#include <stdio.h>
void main(){
	printf("Hello World\n");
}
Copier après la connexion


NO.3

int main(){}
Copier après la connexion

Exemple :

#include <stdio.h>
int main(){
	printf("Hello World\n");
	return 0;
}
Copier après la connexion


NO.4

int main(void){}
Copier après la connexion

Exemple :

#include <stdio.h>
int main(void){
	printf("Hello World\n");
	return 0;
}
Copier après la connexion



NO.5

int main(int argc,char *argv[]){}
Copier après la connexion

Exemple :

#include <stdio.h>
int main(int argc,char *argv[]){
	printf("Hello World\n");
	return 0;
}
Copier après la connexion

NO.6

int main(int argc,char **argv){}
Copier après la connexion

Exemple :

#include <stdio.h>
int main(int argc,char **argv){
	printf("Hello World\n");
	return 0;
}
Copier après la connexion

À 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal