8. Les fonctions
Avantage des fonctions en C
Les fonctions C présentent les avantages suivants.
- En utilisant des fonctions, nous pouvons éviter de réécrire la même logique/code encore et encore dans un programme.
- Nous pouvons appeler des fonctions C n'importe quel nombre de fois dans un programme et de n'importe quel endroit dans un programme.
- Nous pouvons facilement suivre un programme C volumineux lorsqu'il est divisé en plusieurs fonctions.
- La réutilisabilité est la principale réalisation des fonctions C.
- Cependant, l'appel de fonction est toujours une surcharge dans un programme C.
Aspects fonctionnels
Il y a trois aspects d'une fonction C.
- Déclaration de fonction Une fonction doit être déclarée globalement dans un programme c pour indiquer au compilateur le nom de la fonction, les paramètres de la fonction et le type de retour.
- Appel de fonction La fonction peut être appelée de n'importe où dans le programme. La liste de paramètres ne doit pas différer dans l'appel de fonction et la déclaration de fonction. Nous devons passer le même nombre de fonctions qu'il est déclaré dans la déclaration de fonction.
- Définition de la fonction Elle contient les instructions réelles qui doivent être exécutées. C'est l'aspect le plus important auquel le contrôle vient lorsque la fonction est appelée. Ici, nous devons remarquer qu'une seule valeur peut être renvoyée par la fonction.
Aspects de la fonction | Syntaxe | |
---|---|---|
1 | Déclaration de fonction | return_type function_name (argument list); |
2 | Appel de fonction | function_name (argument_list) |
3 | Définition de fonction | return_type function_name (argument list) {function body;} |
La syntaxe de création de fonction en langage c est donnée ci-dessous :
return_type function_name(data_type parameter...){
//code à exécuter
}
Types de fonctions
Il existe deux types de fonctions en programmation C :
- Fonctions de bibliothèque : sont les fonctions qui sont déclarées dans les fichiers d'en-tête C tels que scanf(), printf(), gets(), puts(), ceil(), floor() etc.
- Fonctions définies par l'utilisateur : ce sont les fonctions créées par le programmeur C, afin qu'il puisse l'utiliser plusieurs fois. Il réduit la complexité d'un gros programme et optimise le code.
Valeur de retour
Une fonction C peut ou non renvoyer une valeur de la fonction. Si vous n'avez pas à renvoyer de valeur à partir de la fonction, utilisez void comme type de retour.
Voyons un exemple simple de fonction C qui ne renvoie aucune valeur de la fonction.
Exemple sans valeur de retour :
void bonjour(){
printf("bonjour c");
}
Si vous souhaitez renvoyer une valeur de la fonction, vous devez utiliser n'importe quel type de données tel que int, long, char, etc. Le type de retour dépend de la valeur à renvoyer de la fonction.
Voyons un exemple simple de fonction C qui renvoie la valeur int de la fonction.
Exemple avec valeur de retour :
int get(){
return 10 ;
}
Dans l'exemple ci-dessus, nous devons renvoyer 10 comme valeur, donc le type de retour est int. Si vous souhaitez renvoyer une valeur à virgule flottante (par exemple, 10.2, 3.1, 54.5, etc.), vous devez utiliser float comme type de retour de la méthode.
float get(){
return 10.2 ;
}
Maintenant, vous devez appeler la fonction pour obtenir la valeur de la fonction.
Différents aspects de l'appel de fonction
Une fonction peut ou non accepter n'importe quel argument. Il peut ou non renvoyer une valeur. Sur la base de ces faits, il existe quatre aspects différents des appels de fonction.
- fonction sans arguments et sans valeur de retour
- fonction sans arguments et avec valeur de retour
- fonction avec arguments et sans valeur de retour
- fonction avec arguments et avec valeur de retour
Exemple de fonction sans argument ni valeur de retour
Exemple 1
#include<stdio.h>
void printName();
void main()
{
printf("Bonjour ");
printName();
}
void printName()
{
printf("SAGProfProg");
}
Production
Exemple 2
#include<stdio.h>
void somme();
void main()
{
printf("\nAller calculer la somme de deux nombres :");
somme();
}
void somme()
{
int a,b ;
printf("\nEntrez deux nombres");
scanf("%d %d",&a,&b);
printf("La somme est %d",a+b);
}
Exemple de fonction sans argument et avec valeur de retour
Exemple 1
#include<stdio.h>
int somme();
void main()
{
int resultat ;
printf("\nAller calculer la somme de deux nombres :");
resultat = somme();
printf("%d",resultat);
}
int somme()
{
int a,b ;
printf("\nEntrez deux nombres");
scanf("%d %d",&a,&b);
return a+b ;
}
Exemple 2 : programme pour calculer l'aire du carré
#include<stdio.h>
int somme();
void main()
{
printf("Allons calculer l'aire du carre\n");
float surface = carre();
printf("L'aire du carre : %f\n",surface);
}
int carre()
{
float cote ;
printf("Entrez la longueur du cote en metres : ");
scanf("%f",&cote );
return cote*cote;
}
Exemple de fonction avec argument et sans valeur de retour
Exemple 1
#include<stdio.h>
void somme (int, int);
void main()
{
int a,b;
printf("\nAller calculer la somme de deux nombres :");
printf("\nEntrez deux nombres :");
scanf("%d %d",&a,&b);
somme(a,b);
}
void somme(int a, int b)
{
printf("\nLa somme est %d",a+b);
}
Exemple 2 : programme pour calculer la moyenne de cinq nombres.
#include<stdio.h>
void moyenne(int, int, int, int, int);
void main()
{
int a,b,c,d,e ;
printf("\nAller calculer la moyenne de cinq nombres :");
printf("\nEntrez cinq chiffres :");
scanf("%d %d %d %d %d",&a,&b,&c,&d,&e);
moyenne(a,b,c,d,e);
}
void moyenne(int a, int b, int c, int d, int e)
{
float moy;
moy = (a+b+c+d+e)/5 ;
printf("La moyenne de cinq nombres donnes : %f",moy);
}
Exemple de fonction avec argument et avec valeur de retour
Exemple 1
#include<stdio.h>
int somme(int, int);
void main()
{
int a,b,resultat ;
printf("\nAller calculer la somme de deux nombres :");
printf("\nEntrez deux nombres :");
scanf("%d %d",&a,&b);
resultat = somme(a,b);
printf("\nLa somme est : %d",resultat);
}
int somme(int a, int b)
{
return a+b ;
}
Exemple 2 : Programme pour vérifier si un nombre est pair ou impair
#include<stdio.h>
int pair_impair(int);
void main()
{
int n,resultat=0 ;
printf("\nVas verifier si un nombre est pair ou impair");
printf("\nEntrez le nombre : ");
scanf("%d",&n);
resultat= pair_impair(n);
if(resultat== 0)
{
printf("\nLe nombre est impair");
}
else
{
printf("\nLe nombre est pair");
}
}
int pair_impair(int n)
{
if(n%2 == 0)
{
return 1 ;
}
else
{
return 0 ;
}
}
Production
<capturer>
Fonctions de la bibliothèque C
Les fonctions de bibliothèque sont les fonctions intégrées en C qui sont regroupées et placées dans un lieu commun appelé la bibliothèque. Ces fonctions sont utilisées pour effectuer certaines opérations spécifiques. Par exemple, printf est une fonction de bibliothèque utilisée pour imprimer sur la console. Les fonctions de la bibliothèque sont créées par les concepteurs de compilateurs. Toutes les fonctions de la bibliothèque standard C sont définies dans les différents fichiers d'en-tête enregistrés avec l'extension .h. Nous devons inclure ces fichiers d'en-tête dans notre programme pour utiliser les fonctions de bibliothèque définies dans ces fichiers d'en-tête. Par exemple, pour utiliser les fonctions de la bibliothèque telles que printf/scanf, nous devons inclure stdio.h dans notre programme qui est un fichier d'en-tête contenant toutes les fonctions de la bibliothèque concernant l'entrée/la sortie standard.
La liste des fichiers d'en-tête les plus utilisés est donnée dans le tableau suivant.
SN | Header file | Description |
---|---|---|
1 | stdio.h | Il s'agit d'un fichier d'en-tête d'entrée/sortie standard. Il contient toutes les fonctions de la bibliothèque concernant les entrées/sorties standard. |
2 | conio.h | Il s'agit d'un fichier d'en-tête d'entrée/sortie de la console. |
3 | string.h | Il contient toutes les fonctions de bibliothèque liées aux chaînes telles que gets (), puts (), etc. |
4 | stdlib.h | Ce fichier d'en-tête contient toutes les fonctions générales de la bibliothèque comme malloc(), calloc(), exit(), etc. |
5 | math.h | Ce fichier d'en-tête contient toutes les fonctions liées aux opérations mathématiques telles que sqrt(), pow(), etc. |
6 | time.h | Ce fichier d'en-tête contient toutes les fonctions liées au temps. |
7 | ctype.h | Ce fichier d'en-tête contient toutes les fonctions de gestion des caractères. |
8 | stdarg.h | Les fonctions à arguments variables sont définies dans ce fichier d'en-tête. |
9 | signal.h | Toutes les fonctions de traitement du signal sont définies dans ce fichier d'en-tête. |
10 | setjmp.h | Ce fichier contient toutes les fonctions de saut. |
11 | locale.h | Ce fichier contient des fonctions locales. |
12 | errno.h | Ce fichier contient des fonctions de gestion des erreurs. |
13 | assert.h | Ce fichier contient des fonctions de diagnostic. |
Aucun commentaire