C Fonctions définies par l'utilisateur

Dans ce didacticiel, vous apprendrez à créer des fonctions définies par l'utilisateur en programmation C à l'aide d'un exemple.

Une fonction est un bloc de code qui exécute une tâche spécifique.

C vous permet de définir des fonctions selon vos besoins. Ces fonctions sont appelées fonctions définies par l'utilisateur. Par exemple:

Supposons que vous deviez créer un cercle et le colorier en fonction du rayon et de la couleur. Vous pouvez créer deux fonctions pour résoudre ce problème:

  • createCircle() fonction
  • color() fonction

Exemple: fonction définie par l'utilisateur

Voici un exemple pour ajouter deux entiers. Pour effectuer cette tâche, nous avons créé un fichier défini par l'utilisateur addNumbers().

 #include int addNumbers(int a, int b); // function prototype int main() ( int n1,n2,sum; printf("Enters two numbers: "); scanf("%d %d",&n1,&n2); sum = addNumbers(n1, n2); // function call printf("sum = %d",sum); return 0; ) int addNumbers(int a, int b) // function definition ( int result; result = a+b; return result; // return statement ) 

Prototype de fonction

Un prototype de fonction est simplement la déclaration d'une fonction qui spécifie le nom, les paramètres et le type de retour de la fonction. Il ne contient pas de corps de fonction.

Un prototype de fonction informe le compilateur que la fonction peut être utilisée ultérieurement dans le programme.

Syntaxe du prototype de fonction

 returnType functionName (type1 argument1, type2 argument2,…);

Dans l'exemple ci-dessus, int addNumbers(int a, int b);est le prototype de fonction qui fournit les informations suivantes au compilateur:

  1. le nom de la fonction est addNumbers()
  2. le type de retour de la fonction est int
  3. deux arguments de type intsont passés à la fonction

Le prototype de fonction n'est pas nécessaire si la fonction définie par l'utilisateur est définie avant la main()fonction.

Appeler une fonction

Le contrôle du programme est transféré à la fonction définie par l'utilisateur en l'appelant.

Syntaxe de l'appel de fonction

 functionName (argument1, argument2,…);

Dans l'exemple ci-dessus, l'appel de fonction est effectué à l'aide d'une addNumbers(n1, n2);instruction à l'intérieur de la main()fonction.

Définition des fonctions

La définition de fonction contient le bloc de code pour effectuer une tâche spécifique. Dans notre exemple, ajouter deux nombres et les renvoyer.

Syntaxe de la définition de fonction

 returnType functionName (type1 argument1, type2 argument2,…) (// corps de la fonction) 

Lorsqu'une fonction est appelée, le contrôle du programme est transféré à la définition de la fonction. Et, le compilateur commence à exécuter les codes à l'intérieur du corps d'une fonction.

Passer des arguments à une fonction

En programmation, l'argument fait référence à la variable passée à la fonction. Dans l'exemple ci-dessus, deux variables n1 et n2 sont transmises lors de l'appel de fonction.

Les paramètres a et b acceptent les arguments passés dans la définition de fonction. Ces arguments sont appelés paramètres formels de la fonction.

Le type d'arguments passés à une fonction et les paramètres formels doivent correspondre, sinon le compilateur lancera une erreur.

Si n1 est de type char, a doit également être de type char. Si n2 est de type float, la variable b doit également être de type float.

Une fonction peut également être appelée sans passer d'argument.

Déclaration de retour

L'instruction return termine l'exécution d'une fonction et renvoie une valeur à la fonction appelante. Le contrôle du programme est transféré à la fonction appelante après l'instruction return.

Dans l'exemple ci-dessus, la valeur de la variable de résultat est renvoyée à la fonction principale. main()Cette valeur est affectée à la variable somme de la fonction.

Syntaxe de l'instruction de retour

 return (expression); 

Par exemple,

return a; retour (a + b);

Le type de valeur renvoyé par la fonction et le type de retour spécifié dans le prototype de fonction et la définition de la fonction doivent correspondre.

Visitez cette page pour en savoir plus sur la transmission d'arguments et le retour de valeur d'une fonction.

Articles intéressants...