I have a set of includes that reside in a far off directory meaning that including them requires a long include, such as:
#include \"../../Path/to/my/file.h\
The compiler will do macro replacement on an #include
line (per C 2011 [N1570] 6.10.2 4), but the semantics are not fully defined and cannot be used to concatenate file path components without additional assistance from the C implementation. So about all this allows you to do is some simple substitution that provides a complete path, such as:
#define MyPath "../../path/to/my/file.h"
#include MyPath
What you can do with most compilers and operating systems is:
-I
switch).#include "FancyStuff/file.h"
becomes equivalent to ../../path/to/FancyStuff
because there is a symbolic link named FancyStuff
that points to the longer path.