Is there any difference between #include "./test.h" and #include "test.h" for C/C++ preprocessor?
No, there is no difference.
You could also have
#include "../thisdir/test.h"
And it would be the same
According to the C standard, there is no difference: the compiler gets to specify how they are searched. In practice, there shouldn't be any difference, either, for any of the implementations I am aware of.
In my opinion there is an important difference.
In the case of #include "test.h"
the include file is searched for in all directories specified to the compiler with the option -I.
In the case of #include "./test.h"
only the residing directory of the referring file is used.
Both styles will be treated the same by the pre-processor. The standard practice is
#include "test.h"
and pass the include file path as an option to the compiler. (For instance, the -I option of GCC). This makes it easy to change the location of header files. You just need to make a single change in the project's make file.