Dans les langages de programmation C et C++, quelle est la différence entre l’utilisation de guillemets ""
et l’utilisation de crochets <> dans l’instruction include, comme suit ?
#include <filename>
#include "filename"
Dans les langages de programmation C et C++, quelle est la différence entre l’utilisation de guillemets ""
et l’utilisation de crochets <> dans l’instruction include, comme suit ?
#include <filename>
#include "filename"
En pratique, la différence réside dans l’emplacement où le préprocesseur recherche le fichier inclus.
Pour #include <filename>
, le préprocesseur cherche d’une manière dépendante de l’implémentation, normalement dans des répertoires prédésignés par le compilateur/IDE. Cette méthode est normalement utilisée pour inclure les fichiers d’en-tête de la bibliothèque standard.
Pour #include "filename"
, le préprocesseur cherche d’abord dans le même répertoire que le fichier contenant la directive, puis suit le chemin de recherche utilisé pour la forme #include "filename"
. Cette méthode est normalement utilisée pour inclure des fichiers d’en-tête définis par le programmeur.
Pour #include "filename"
le compilateur recherche normalement le dossier du fichier qui contient cette inclusion et ensuite les autres dossiers. Pour #include <filename>
le compilateur ne cherche pas dans le dossier du fichier courant.
Lorsque vous utilisez #include <filename>
, le pré-processeur cherche le fichier dans le répertoire des fichiers d’en-tête C\C++ (stdio.h\cstdio, string, vector, etc.). Mais, lorsque vous utilisez #include "filename"
en premier, le pré-processeur cherche le fichier dans le répertoire courant, et s’il ne s’y trouve pas - le pré-processeur le cherchera dans le répertoire des fichiers d’en-tête C\C++.