Programmation en C – Les fonctions

Une fonction est un groupe d’instructions qui exécutent un ensemble de tâches. Chaque programme C a au moins une fonction, qui est main (), et tous les programmes peuvent définir des fonctions supplémentaires.

Vous pouvez diviser votre code à des fonctions distinctes. La façon dont vous divisez votre code entre différentes fonctions dépend de vous, mais logiquement, la division est telle que chaque fonction exécute une tâche spécifique.

Une déclaration d’une fonction indique au compilateur le nom, le type de retour et les paramètres d’une fonction. Définition d’une fonction fournit le corps de la fonction.

La bibliothèque standard C offre de nombreuses fonctions intégrées que votre programme peut appeler. Par exemple, strcat () pour concaténer deux chaînes, memcpy () pour copier un emplacement mémoire vers un autre emplacement, et beaucoup plus de fonctions.

Une fonction peut également être appelée une méthode ou une sous-routine ou une procédure, etc.
 
 

Définition d’une fonction

La forme générale d’une définition d’une fonction en langage C est la suivante

type_de_retour  nom_de_la_fonction ( liste_de_paramètres ) {
   corps_de_la_fonction
}

Une définition d’une fonction en programmation C se compose d’un en-tête et d’un corps. Voici toutes les parties d’une fonction :

Le type de retour – Une fonction peut renvoyer une valeur. type_de_retour est le type de données de la valeur renvoyée par la fonction. Certaines fonctions effectuent des opérations sans retourner une valeur. Dans ce cas, type_de_retour est le mot clé void.

Le nom de la fonction – Il s’agit du nom de la fonction. Le nom de la fonction et la liste des paramètres constituent ensemble la signature de la fonction.

Les paramètres –  Lorsqu’une fonction est appelée, vous passez une valeur au paramètre. Cette valeur est appelée paramètre ou argument. La liste des paramètres fait référence au type, à l’ordre et au nombre des paramètres d’une fonction. Les paramètres sont facultatifs; C’est-à-dire qu’une fonction peut ne pas avoir des paramètres.

Le corps de la fonction – Le corps de fonction contient une collection d’instructions qui définissent ce que la fonction fait.

Exemple :
Ci-dessous est le code source d’une fonction appelée maximum (). Cette fonction prend deux paramètres nbr1 et nbr2 et retourne la valeur maximale entre les deux

/* Fonction renvoyant le maximum entre deux nombres */
int maximum(int nbr1, int nbr2) {

   /* Déclaration d'une variable locale */
   int result;
 
   if (nbr1> nbr2)
      result = nbr1;
   else
      result = nbr2;
 
   return result; 
} 

 

Déclaration d’une fonction

Déclaration d’une fonction indique au compilateur le nom de la fonction et comment faire appele à la fonction. Le corps de la fonction peut être défini séparément.

Déclaration d’une fonction comporte les parties suivantes

type_de_retour nom_de_la_fonction (liste_des_paramètres);

Pour la fonction définie ci-dessus maximum (), la déclaration de la fonction est la suivante

int maximum (int nbr1, int nbr2);

Les noms de paramètres ne sont pas importants dans la déclaration de la fonction que leur type est nécessaire, donc ce qui suit est également une déclaration valide

int maximum (int, int);

La déclaration de la fonction est requise lorsque vous définissez une fonction dans un fichier source et que vous appelez cette fonction dans un autre fichier. Dans ce cas, vous devez déclarer la fonction en haut du fichier appelant la fonction.
 
 

Appel d’une fonction

Tout en créant une fonction C, vous donnez une définition de ce que la fonction doit faire. Pour utiliser une fonction, vous devrez appeler cette fonction pour exécuter la tâche définie.

Lorsqu’un programme appelle une fonction, la commande est transférée à la fonction appelée. Une fonction appelée exécute une tâche définie et lorsque son instruction de retour est exécutée ou lorsque son accolade de fermeture est atteinte, le compilateur retourne au programme principal.

Pour appeler une fonction, vous devez tout simplement passer les paramètres requis avec le nom de la fonction, et si la fonction renvoie une valeur, vous pouvez stocker la valeur retournée dans une variable. Par exemple :

#include <stdio.h>

/* Déclaration de la fonction */
int maximum(int nbr1, int nbr2);

int main () {

  /* Définition des variables locales */
   int a = 100;
   int b = 200;
   int m;

  /* Appeler la fonction maximum pour obtenir une valeur max */
   m = maximum(a, b);

   printf( "La valeur maximale est : %dn", m);

   return 0;
}

/* Fonction retournant le maximum de deux nombres */
int maximum(int nbr1, int nbr2) {

   /* Déclaration de variable locale */
   int result;

   if (nbr1 > nbr2)
      result = nbr1;
   else
      result = nbr2;

   return result;
}

La sortie :

La valeur maximale est: 200

 

Arguments de la fonction

Si une fonction doit utiliser des arguments, elle doit déclarer des variables qui acceptent les valeurs des arguments. Ces variables sont appelées les paramètres de la fonction.

Les paramètres se comportent comme les autres variables locales dans la fonction et sont créés lors de l’entrée dans la fonction et détruits à la sortie de la fonction.

Lors de l’appel d’une fonction, il existe deux façons pour envoyer les arguments à une fonction
 

1- Passage des paramètres par valeur

Cette méthode copie la valeur d’un argument dans le paramètre de la fonction. Dans ce cas, les modifications apportées au paramètre à l’intérieur de la fonction n’ont aucun effet sur l’argument.
 

2- Passage des paramètres par référence

Cette méthode copie l’adresse d’un argument dans le paramètre de la fonction. À l’intérieur de la fonction, l’adresse est utilisée pour accéder à l’argument réel utilisé dans l’appel. Cela signifie que les modifications apportées au paramètre affectent l’argument.

Par défaut, C utilise le passage par valeur pour transmettre des arguments. En général, cela signifie que le code dans une fonction ne peut pas modifier les arguments utilisés pour appeler la fonction.

 
 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.