Pour en ajouter, le principe est que le préprocesseur, soit, pour simplifier les choses, un programme qui travaille avant le compilateur, vérifie cette directive et le fichier à inclure.
Il va chercher le fichier spécifié et recopie à la place du #include le contenu du fichier.
Il s,est où chercher suivant les indications qui lui ont été données, c´est-à-dire des répertoires rempli d´headers.
Il a deux syntaxes à include:
- include < fichier>
-
Recherche ´fichier´ dans tous les répertoires à headers. Suivant le compilateur, ils varient et il est souvent possible d´en spécifier des additionels.
- include " fichier"
-
Recherche ´fichier´ dans le dossier actuel du fichier source préprocessé. Il ne faut pas oublier qu´il travaille que un fichier source à la fois.
fichier peut être un path, et il est loin d´être nécessaire d´avoir un extension en . h ou . hpp. Si, par exemple, dans le répertoire de main.cpp il y a un dossier X contenant Y.cpp, il est valable de faire:
- include " X/Y.cpp"
dans main.cpp
Cepandant, pour s´y retrouver, on préfèrera lui attribuer l´extension . h pour mieux s´y retourver.
Ce n´est bien sur pas toujours le cas, la STL par exemple utilise des headers sans extensions ( quoique, il est vraie que dans leur cas, ce soit un mélange de code source et headers...)
Aussi, cela signifie que iostream.h est bel et bien un fichier qu´y se trouve dans un ou des paths spécifiés par défaut, et aussi, qu´il est possible de faires des headers . h et de les foutre dans un dossier spécifié par un path par défaut, permettant ainsi d´y accéder de n´importe ou à partir de la première syntaxe.
J´espère avoir répondu à tes questions
Kelios
---------