2009-10-22 6 views

Répondre

4

Non, il n'y a aucune différence.

Vous pourriez aussi avoir

#include "../thisdir/test.h" 

Et ce serait la même

+0

Vous devriez changer tous vos #includes si vous avez renommé le répertoire par –

+0

Et si j'ai fait "../../thisdir/test.h", ce serait un cauchemar :) – Tom

1

Selon la norme C, il n'y a pas de différence: le compilateur obtient de spécifier la façon dont ils sont recherchés. En pratique, il ne devrait pas y avoir de différence non plus pour les implémentations dont je suis au courant.

-1

À mon avis, il existe une différence importante.

Dans le cas de #include "test.h", le fichier d'inclusion est recherché dans tous les répertoires spécifiés au compilateur avec l'option -I.

Dans le cas de #include "./test.h", seul le répertoire résidant du fichier de référence est utilisé.

+0

Isnt l'option -I – Tom

+0

@Tom, en supposant que l'on parle de gcc, -I spécifie les répertoires pour rechercher à la fois "" et < > comprend. Vous pouvez utiliser -isystem pour spécifier les chemins qui ne doivent être recherchés que pour les chevrons. –

+1

Pas vrai. Les deux vont toujours chercher dans tous les répertoires. Juste que "" va chercher les répertoires locaux avant de regarder ceux spécifiés avec -I – sep

1

Les deux styles seront traités de la même manière par le pré-processeur. La pratique standard est

#include "test.h" 

et de transmettre le chemin d'accès au fichier include en tant qu'option au compilateur. (Par exemple, l'option -I de GCC). Cela facilite le changement de l'emplacement des fichiers d'en-tête. Vous avez juste besoin de faire un seul changement dans le fichier make du projet.

Questions connexes