2010-03-29 12 views
3

Est-ce que cela signifie rechercher dans le dossier précédent pour somefile.h ou dans le dossier de projet pour somefile.h?Que signifie le .. dans #include "../somefile.h" signifie

+0

N'utilisez plus jamais ceci dans le nouveau code et changez-le si vous pouvez dans l'ancien code. L'utilisation de chemins relatifs (../whatever) a de terribles problèmes d'évolutivité. –

Répondre

14

Cela signifie que pour regarder somefile.h dans le dossier parent par rapport au fichier source où la directive Include se trouve.

Dans les systèmes * nix (thats où cette convention est de AFAIK):

.  manse the current directory. 
..  means one level up from the current directory. 

Par exemple, si vous avez la structure des répertoires suivants:

home 
    | 
    code 
     | src 
     | someOtherDirectory 

Votre fichier source pourrait être home/code/src et vous avez:

#include "../somefile.h" 

dans votre code source, alors le compilateur va chercher somefile.h dans home/code/

+0

pas seulement * nix, mais aussi DOS – Kip

+0

@Kip DOS n'a pas obtenu cette convention des vieux systèmes Unix? – AraK

+2

Note mineure - cela n'est pas requis par la norme pour être le sens de "..", c'est juste ce que cela signifie en pratique dans à peu près n'importe quel système de fichiers. –

2

Cela signifie que le répertoire parent du répertoire du fichier source est.

3

Cela signifie regarder dans le répertoire parent pour « somefile.h », par rapport au répertoire du fichier contenant la directive est.

0

Eh bien, si vos fichiers source sont en /src, puis somefile.h devrait être au-dessus de src ou dans /