Cours 8.3. Le mot-clé void dans les fonctions

Définition

En anglais, void signifie néant. Ce mot-clé est utilisé lorsqu'une fonction ne retourne aucune valeur ou n'accepte aucun paramètres. Voici un exemple de de fonction avec void :

int main (void) {
  return 0;
}

Fonction sans valeur retournée

Si une fonction ne retourne pas de valeur, alors, il faudra précéder sa déclaration du mot-clé void. Voici un exemple de fonction qui affiche un entier et ne retourne rien :

void println(int n) {
  printf ("%d\n", n);
}

Dans ce type de fonction, le mot-clé return peut être utilisé, mais il ne sert qu'à terminer l'exécution de la fonction.

Fonction sans paramètres

Si une fonction n'accepte aucun argument, il faudra préciser void entre les parenthèses pour informer le compilateur et les utilisateurs qu'elle ne reçoit aucun paramètre. Par exemple, la fonction standard rand() permet de retourner un nombre pseudo-aléatoire :

int rand(void);

Notons que certains compilateurs acceptent l'omission du mot-clé void entre les parenthèses. Toutefois, il est préférable de le mettre systématiquement afin d'assurer la portabilité du code vers un autre compilateur.

Exercices

Exercice 1

Écrire une fonction printBase(unsigned int n, unsigned char base) qui affiche l'entier n dans la base base suivi d'un retour à la ligne :

Le paramètre base ne peut prendre que trois valeurs :

On fournit le début du programme principal qui demande à l'utilisateur de saisir un entier. Compléter ce programme afin que l'entier saisi soit affiché dans les trois bases :

Entrez un entier positif : 185
En octal : 271
En décimal : 185
En hexadécimal : b9

Exercice 2

Écrire une fonction saisie() qui saisit une note au clavier et retourne cette note. Le corps de la fonction saisie() ne doit contenir que 3 lignes :

Tester la fonction avec le programme principal suivant :

int main(void) {

  float n1, n2;

  // Saisie des notes
  printf ("Entrez une note : ");
  n1 = saisie();
  printf ("Entrez une autre note : ");
  n2 = saisie();

  // Calcul et affichage de la moyenne
  printf ("Moyenne : %.2f\n", (n1+n2)/2);

  return 0;
}
Entrez une note : 12.4
Entrez une autre note : 13.7
Moyenne : 13.05

Quiz

Lesquelles de ces fonctions ne reçoivent aucun paramètre ?

Vérifier Bravo ! Une fonction sans paramètre contient void entre les parenthèses Essaie encore ...

Lesquelles de ces fonctions ne retournent aucun paramètre ?

Vérifier Bravo ! void doit précéder le nom de la fonction pour indiquer qu'elle ne retourne pas de valeur. Essaie encore ...

Considérons la fonction suivante, quelles affirmations sont correctes ?

void update(void);
Vérifier Bravo ! Il est relativement courant d'écrire des fonctions qui ne reçoivent et ne retournent aucun paramètres, en particulier sur les systèmes embarqués. Essaie encore ...

Quelles fonctions ne recevoivent aucun paramètre en entrée et en retournent 2 ?

Vérifier Bravo ! En C, une function ne peut retourner qu'une valeur tout au plus. Essaie encore ...

Voir aussi


Dernière mise à jour : 21/11/2023