Bonjour,
Une petite question au passage :
Savez-vous quelle est la différence entre :
et :Code:<librairie.h>
?Code:"librairie.h"
Merci.8-)
Version imprimable
Bonjour,
Une petite question au passage :
Savez-vous quelle est la différence entre :
et :Code:<librairie.h>
?Code:"librairie.h"
Merci.8-)
<librairie.h> va chercher dans les chemins fournit dans les options du compilateur, c'est conseillé pour l'utilisation d'une bibliothèque tierce.
"librairie.h" va ouvrir directement le fichier à l'adresse qui est entre guillemets, utilisé pour les fichier non-publics dans une bibliothèque par exemple.
Salut,
D'un strict point de vue de la norme, la seule différence entre les 2 écritures est que si #include "en-tete.h" échoue, le compilateur doit essayer #include <en-tete.h>. La façon dont est faite la correspondance entre un fichier physique et le nom de l'en-tête pour chacune des deux formes est un détail d'implémentation du compilateur.
Certains compilateurs différencient les répertoires de recherches (ou leur ordre) selon que l'on utilise <en-tete.h> ou "en-tete.h". Mais cela n'a rien de standard et peut varier d'un compilateur à l'autre.
Par exemple,
Pour les fichiers inclus par <>, Visual C++ cherche d'abord dans les répertoires spécifiés par /I ou par la variable d'environnement INCLUDE
GCC cherche dans les répertoires par défaut puis dans ceux spécifiés par /I
Pour les fichiers inclus par "", Visual cherche dans le même répertoire que le fichier en cours de compilation et ayant la directive d'inclusion, puis dans le répertoire des différents fichiers déjà inclus dans l'ordre inverse de leur inclusion, puis par le schéma de recherche utilisé par <>.
Pour GCC, la recherche concerne uniquement pour commencer le répertoire contenant la directive #include "", puis les répertoires spécifiés par l'option de compilation -iquote, puis par le schéma de recherche utilisé par <>.
Comme on voit, rien de standard qui puisse permettre de dire quand il faut utiliser une syntaxe plutôt qu'une autre.
Salut,
Comme l'a fait remarquer 3D, il n'y a rien de parfaitement standard :P
Cependant, une des habitudes généralement admises est:
- d'utiliser < > pour les fichiers d'en-tête relatifs à des bibliothèques tierces (par rapport à ton projet) (la bibliothèque standard étant considérée comme telle :D)
- d'utiliser " " pour les fichier d'en-tête relatifs à ton propres projets
Salut,
Ok
Merci pour vos réponses.
Je mets donc un petit "résolu" !
8-)