Vous êtes sur la page 1sur 6

Les fonctions en C

LES FONCTIONS

Définition
Chaque « petit bout de programme » sera ce qu'on appelle une fonction.
Une fonction exécute des actions et renvoie un résultat. C'est un morceau de code qui sert à
faire quelque chose de précis. On dit qu'une fonction possède une entrée et une sortie.

Une fonction est :


une suite d’instructions ;
marquée à l’aide d’un nom (comme une variable finalement) ;
qui a vocation à être exécutée à plusieurs reprises ;
qui rassemble des instructions qui permettent d’effectuer une tâche précise (comme
afficher du texte à l’écran, calculer la racine carrée d’un nombre, etc).

Définir et utiliser une fonction


Pour définir une fonction, nous allons devoir donner quatre informations sur celle-ci :
• son nom : les règles sont les mêmes que pour les variables ;
• son corps (son contenu) : le bloc d’instructions à exécuter ;
• son type de retour : le type du résultat de la fonction ;
• d’éventuels paramètres : des valeurs reçues par la fonction lors de l’appel.

La syntaxe est la suivante.

Prenons un exemple en créant une fonction qui affiche « bonjour ! » à l’écran.

1
Les fonctions en C

La fonction se nomme « bonjour » et est composée d’un appel à printf().


Reste les deux mots-clés void :
dans le cas du type de retour, il spécifie que la fonction ne retourne rien ;
dans le cas des paramètres, il spécifie que la fonction n’en reçoit aucun (cela se
manifeste lors de l’appel : il n’y a rien entre les parenthèses).

Le type de retour
Le type de retour permet d’indiquer deux choses :
si la fonction retourne une valeur et
le type de cette valeur.

Résultat

2
Les fonctions en C

Dans l’exemple ci-dessus, la fonction deux() est définie comme retournant une valeur de
type int. Vous retrouvez l’instruction return, une instruction de saut
(comme break, continue et goto). Ce return arrête l’exécution de la fonction courante et
provoque un retour (techniquement, un saut) vers l’appel à cette fonction qui se voit alors
attribuer la valeur de retour (s’il y en a une). Autrement dit, dans notre exemple,
l’instruction return 2 stoppe l’exécution de la fonction deux() et ramène l’exécution du
programme à l’appel qui vaut désormais 2, ce qui donne finalement
printf("Retour : %d\n", 2)

Les paramètres
Un paramètre sert à fournir des informations à la fonction lors de son exécution. La
fonction printf() par exemple récupère ce qu’elle doit afficher dans la console à l’aide de
paramètres. Ceux-ci sont définis de la même manière que les variables si ce n’est que les
définitions sont séparées par des virgules.

Les fonctions d’entrées sorties classiques


Il s'agit des fonctions de la librairie standard stdio.h utilisées avec les unités classiques
d'entrées-sorties, qui sont respectivement le clavier et l'écran. Sur certains compilateurs,
l'appel à la librairie stdio.h par la directive au préprocesseur
n'est pas nécessaire pour utiliser printf et scanf.

► La fonction d'écriture « printf »


printf("chaîne de contrôle ",expression1, ..., expressionN);

La chaîne de contrôle contient le texte à afficher et les spécifications de format correspondant


à chaque expression de la liste. Les spécifications de format ont pour but d'annoncer le format
des données à visualiser. Elles sont introduites par le caractère %, suivi d'un caractère

3
Les fonctions en C

désignant le format d'impression. Les formats d'impression en C sont donnés dans la table ci-
dessous.

En plus du caractère donnant le type des données, on peut éventuellement préciser certains
paramètres du format d'impression, qui sont spécifiés entre le % et le caractère de conversion
dans l'ordre suivant :
largeur minimale du champ d'impression : %10d spécifie qu'au moins 10 caractères
seront réservés pour imprimer l'entier. Par défaut, la donnée sera cadrée à droite du champ. Le
signe - avant le format signifie que la donnée sera cadrée à gauche du champ (%-10d).
précision : %.12f signifie qu'un flottant sera imprimé avec 12 chiffres après la virgule.
De même %10.2f signifie que l'on réserve 12 caractères (incluant le caractère .) pour
imprimer le flottant et que 2 d'entre eux sont destinés aux chiffres après la virgule. Lorsque la
précision n'est pas spécifiée, elle correspond par défaut à 6 chiffres après la virgule. Pour une
chaîne de caractères, la précision correspond au nombre de caractères imprimés : %30.4s
signifie que l'on réserve un champ de 30 caractères pour imprimer la chaîne mais que
seulement les 4 premiers caractères seront imprimés (suivis de 26 blancs).

► La fonction de saisie « scanf »


La fonction scanf permet de saisir des données au clavier et de les stocker aux adresses
spécifiées par les arguments de la fonction.

4
Les fonctions en C

scanf("chaîne de contrôle",argument1,...,argumentN)

La chaîne de contrôle indique le format dans lequel les données lues sont converties. Elle ne
contient pas d'autres caractères (notamment pas de \n). Comme pour printf, les conversions de
format sont spécifiées par un caractère précédé du signe %. Les formats valides pour la
fonction scanf diffèrent légèrement de ceux de la fonction printf et sont donnés dans la table
ci-dessous.
Les données à entrer au clavier doivent être séparées par des blancs ou des ‹RETURN› sauf s'il
s'agit de caractères. On peut toutefois fixer le nombre de caractères de la donnée à lire. Par
exemple %3s pour une chaîne de 3 caractères, %10d pour un entier qui s'étend sur 10 chiffres,
signe inclus.

Exemple :
#include ‹studio.h›
main()
{
int i;
printf("entrez un entier sous forme hexadécimale i = ");
scanf("%x",&i);
printf("i = %d\n",i);
}

Si on entre au clavier la valeur 1a, le programme affiche i = 26.

5
Les fonctions en C

► Impression et lecture de caractères


Les fonctions getchar et putchar permettent respectivement de lire et d'imprimer des
caractères. Il s'agit de fonctions d'entrées-sorties non formatées.
La fonction getchar retourne un int correspondant au caractère lu. Pour mettre le caractère lu
dans une variable caractere, on écrit
caractère = getchar();
Lorsqu'elle détecte la fin de fichier, elle retourne l'entier EOF (End Of File), valeur définie
dans la librairie stdio.h. En général, la constante EOF vaut -1.
La fonction putchar écrit caractère sur la sortie standard :
putchar(caractère);
Elle retourne un int correspondant à l'entier lu ou à la constante EOF en cas d'erreur.

Vous aimerez peut-être aussi