2.1.1 Gérer les inclusions multiples

Qu'est-ce que c'est que ça ?

Et oui, nous n'en avons pas encore parlé, mais là c'est le bon moment.

Rappelez-vous, je vous ai dit précédemment que quand on fait un #include on fait un copier-coller du fichier dans celui où l'on fait l'inclusion, mais si ce fichier inclus le fichier qui l'a inclus, comment on s'en sort ?

Le compilateur ne gère pas ça ?

Et bien il va râler, si on fait une inclusion en boucle...

Mais pas si un fichier inclus deux fois le même fichier, le compilateur va vous dire qu'il existe plusieurs déclarations de la même fonction et vous allez râler. Et bien sur, vous n'aller pas apprendre par cœur toutes les inclusions de tout les headers (.h) que vous allez utiliser dans votre programme. Il faut donc trouver une autre solution solution.

Et souvenez-vous, les macros pour faire des conditions #ifdef et #ifndef, disent si une variable définit avec #define existe ou pas.

Nous pouvons donc faire quelque chose comme ça dans un fichier .h :

1
2
3
4
5
6
#ifndef __FICHIER_H__
#define __FICHIER_H__

//contenu du fichier fichier.h

#endif

Voilà, là nous sommes sures que le fichier va être inclus qu'une seule fois.