Есть ли разница между #include "./test.h" и #include "test.h" для препроцессора C / C ++?
#include "./test.h"
#include "test.h"
Нет, разницы нет.
Вы также можете иметь
#include "../thisdir/test.h"
И это будет то же самое
Оба стиля будут обрабатываться одинаково препроцессором. Стандартная практика
и передать компилятору путь к включаемому файлу в качестве опции. (Например, опция -I GCC). Это позволяет легко менять расположение заголовочных файлов. Вам просто нужно сделать одно изменение в файле проекта.
В соответствии со стандартом C, нет никакой разницы: компилятор определяет, как их искать На практике также не должно быть никаких различий ни для одной из реализаций, о которых я знаю.
На мой взгляд, есть важное отличие.
В случае #include "test.h" включаемый файл ищется во всех каталогах, указанных для компилятора с параметром -I.
В случае #include "./test.h" используется только каталог, в котором находится соответствующий файл.