Maison  >  Article  >  Comment comprendre la déclaration de fonction en langage C

Comment comprendre la déclaration de fonction en langage C

清浅
清浅original
2019-03-06 14:31:1729843parcourir

Le format de déclaration de fonction en langage C consiste à supprimer le corps de la fonction dans la définition de la fonction et à ajouter un point-virgule. Le but est d'empêcher le programme d'utiliser la fonction avant qu'elle ne soit indéfinie, ce qui entraîne le programme à le faire. signaler une erreur.

Comment comprendre la déclaration de fonction en langage C

Le code du langage C est exécuté de haut en bas. En principe, la définition de la fonction doit apparaître avant l'appel de la fonction, sinon une erreur sera signalée. Mais dans le développement réel, ils sont souvent utilisés avant que la fonction ne soit définie, et dans ce cas, ils doivent être déclarés à l'avance. Ensuite, dans l'article, nous présenterons en détail les connaissances sur la déclaration de fonction, ce qui aura un certain effet de référence, j'espère que cela sera utile à tout le monde.

[Cours recommandés : Tutoriel Langage C]

Déclaration de fonction

Donc -appelé Déclaration consiste à indiquer au compilateur que je vais utiliser cette fonction. Peu importe si sa définition n'est pas trouvée maintenant, mais veuillez ne pas signaler d'erreur et la définition sera remplie plus tard.
Le format de déclaration de fonction est très simple, ce qui équivaut à supprimer le corps de la fonction dans la définition de la fonction et à ajouter un point-virgule ;, comme indiqué ci-dessous :

返回值类型  函数名( 类型 形参, 类型 形参… );

Vous pouvez également n'écrire aucun paramètre formel , uniquement le type de données :

返回值类型  函数名( 类型, 类型…);

La déclaration de fonction donne le nom de la fonction, le type de valeur de retour, la liste des paramètres (type de paramètre) et d'autres informations liées à la fonction, qui est appelée le prototype de fonction (Function Prototype ).
Le prototype de fonction consiste à indiquer au compilateur les informations relatives à la fonction, afin que le compilateur connaisse l'existence de la fonction et sa forme existante. Même si la fonction n'est pas définie temporairement, le compilateur sait comment l'utiliser.
Avec la déclaration de fonction, la définition de fonction peut apparaître n'importe où, même dans d'autres fichiers, bibliothèques de liens statiques, bibliothèques de liens dynamiques, etc.

Exemple :

#include <stdio.h>
// 函数声明
long factorial(int n); 
//也可以写作 long factorial(int);
long sum(long n); //也可以写作 long sum(long);
int main(){
printf("1!+2!+...+9!+10! = %ld\n", sum(10));return 0;
}
//求阶乘
long factorial(int n)
{
int i;
long result=1;
for(i=1; i<=n; i++){
result *= i;
}
return result;
}
// 求累加的和
long sum(long n)
{int i;
long result = 0;
for(i=1; i<=n; i++)
{
//嵌套调用
result += factorial(i);
}
return result;
}

Le résultat courant est : 1!+2!+...+9!+10 = 4037913

Nous savons que lors de l'utilisation de fonctions telles que printf(), puts(), scanf(), getchar(), etc., le fichier d'en-tête stdio.h doit être introduit. De nombreux débutants pensent que stdio.h contient la définition de la fonction (. c'est-à-dire le corps de la fonction), tant qu'avec le fichier d'en-tête, le programme peut être exécuté. En fait, ce n'est pas le cas. Le fichier d'en-tête contient des déclarations de fonctions, pas des définitions de fonctions. Les définitions de fonctions sont toutes dans la bibliothèque système. S'il n'y a qu'un fichier d'en-tête sans bibliothèque système, une erreur sera signalée lors de la liaison. et le programme ne fonctionnera pas du tout.

Résumé : ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à tout le monde.

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!

Déclaration:
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