Fonction C


Une fonction est un groupe d'instructions qui effectuent ensemble une tâche. Chaque programme C a au moins une fonction, la fonction principale main() , et tous les programmes simples peuvent définir d'autres fonctions supplémentaires.

Vous pouvez diviser le code en différentes fonctions. La manière dont vous divisez votre code en différentes fonctions dépend de vous, mais logiquement, la division est généralement basée sur le fait que chaque fonction exécute une tâche spécifique.

Fonction Déclaration indique au compilateur le nom, le type de retour et les paramètres de la fonction. La définition de la fonction fournit le corps réel de la fonction.

La bibliothèque standard C fournit un grand nombre de fonctions intégrées que les programmes peuvent appeler. Par exemple, la fonction strcat() est utilisée pour concaténer deux chaînes, et la fonction memcpy() est utilisée pour copier la mémoire vers un autre emplacement.

La fonction a de nombreux autres noms, tels que méthode, sous-programme ou programme, etc.

Définir une fonction

La forme générale de définition de fonction en langage C est la suivante :

return_type function_name( parameter list ){
   body of the function}

En langage C, une fonction se compose d'un en-tête de fonction et d'un corps de fonction. Vous trouverez ci-dessous tous les composants d'une fonction :

  • Type de retour : Une fonction peut renvoyer une valeur. return_type est le type de données de la valeur renvoyée par la fonction. Certaines fonctions effectuent l'opération requise sans renvoyer de valeur, dans ce cas return_type est le mot-clé void.

  • Nom de la fonction : Il s'agit du nom réel de la fonction. Le nom de la fonction et la liste des paramètres forment ensemble la signature de la fonction.

  • Paramètres : Les paramètres sont comme des espaces réservés. Lorsqu'une fonction est appelée, vous transmettez une valeur à l'argument, appelé argument réel. La liste des paramètres comprend le type, l'ordre et le nombre de paramètres de fonction. Les paramètres sont facultatifs, c'est-à-dire que la fonction ne peut pas contenir de paramètres.

  • Corps de la fonction : Le corps de la fonction contient un ensemble d'instructions qui définissent les tâches exécutées par la fonction.

Exemple

Ce qui suit est le code source de la fonction max(). Cette fonction a deux paramètres num1 et num2, et renverra le plus grand des deux nombres :

/* 函数返回两个数中较大的那个数 */int max(int num1, int num2) {   /* 局部变量声明 */   int result; 
   if (num1 > num2)
      result = num1;   else
      result = num2; 
   return result; }

Déclaration de fonction

Fonctiondeclaration indiquera au compilateur le nom de la fonction et comment pour appeler la fonction. Le corps réel de la fonction peut être défini séparément.

La déclaration de fonction comprend les parties suivantes :

return_type function_name( parameter list );

Pour la fonction max() définie ci-dessus, voici la déclaration de fonction :

int max(int num1, int num2);

Dans la déclaration de fonction, le nom du paramètre Peu importe, seuls les types des paramètres sont requis, donc ce qui suit est également une déclaration valide :

int max(int, int);

Une déclaration de fonction est requise lorsque vous définissez une fonction dans un fichier source et appelez-le dans un autre fichier. Dans ce cas, vous devez déclarer la fonction en haut du fichier où elle est appelée.

Appeler une fonction

Lorsque vous créez une fonction C, vous définissez ce que fait la fonction, puis appelez la fonction pour terminer la tâche définie.

Lorsqu'un programme appelle une fonction, le contrôle du programme est transféré à la fonction appelée. La fonction appelée exécute la tâche définie et renvoie le contrôle du programme au programme principal lorsque l'instruction return de la fonction est exécutée ou lorsque le crochet fermant de la fonction est atteint.

Lors de l'appel d'une fonction, transmettez les paramètres requis, et si la fonction renvoie une valeur, vous pouvez stocker la valeur de retour. Par exemple :

#include <stdio.h> /* 函数声明 */int max(int num1, int num2); int main (){   /* 局部变量定义 */   int a = 100;   int b = 200;   int ret; 
   /* 调用函数来获取最大值 */
   ret = max(a, b);
 
   printf( "Max value is : %d\n", ret ); 
   return 0;} /* 函数返回两个数中较大的那个数 */int max(int num1, int num2) {   /* 局部变量声明 */   int result; 
   if (num1 > num2)
      result = num1;   else
      result = num2; 
   return result; }

Mettez la fonction max() et la fonction main() ensemble et compilez le code source. Lorsque l'exécutable final est exécuté, les résultats suivants sont produits :

Max value is : 200

Paramètres de la fonction

Si une fonction doit prendre des paramètres, elle doit déclarer une variable qui accepte la valeur du paramètre. Ces variables sont appelées les paramètres formels de la fonction.

Les paramètres formels sont comme les autres variables locales au sein d'une fonction. Ils sont créés lors de l'entrée dans la fonction et détruits lors de la sortie de la fonction.

Lors de l'appel d'une fonction, il existe deux manières de transmettre des paramètres à la fonction :

调用类型描述
传值调用该方法把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数不会影响实际参数。
引用调用该方法把参数的地址复制给形式参数。在函数内,该地址用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。

Par défaut, C utilise appel par valeur pour passer des paramètres. De manière générale, cela signifie que le code d'une fonction ne peut pas modifier les paramètres réels utilisés pour appeler la fonction.