Директива #include: разница между "test.h" и "./test.h" - PullRequest
3 голосов
/ 22 октября 2009

Есть ли разница между #include "./test.h" и #include "test.h" для препроцессора C / C ++?

Ответы [ 4 ]

4 голосов
/ 22 октября 2009

Нет, разницы нет.

Вы также можете иметь

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

И это будет то же самое

1 голос
/ 22 октября 2009

Оба стиля будут обрабатываться одинаково препроцессором. Стандартная практика

#include "test.h"

и передать компилятору путь к включаемому файлу в качестве опции. (Например, опция -I GCC). Это позволяет легко менять расположение заголовочных файлов. Вам просто нужно сделать одно изменение в файле проекта.

1 голос
/ 22 октября 2009

В соответствии со стандартом C, нет никакой разницы: компилятор определяет, как их искать На практике также не должно быть никаких различий ни для одной из реализаций, о которых я знаю.

0 голосов
/ 22 октября 2009

На мой взгляд, есть важное отличие.

В случае #include "test.h" включаемый файл ищется во всех каталогах, указанных для компилятора с параметром -I.

В случае #include "./test.h" используется только каталог, в котором находится соответствующий файл.

...