How can I use directory in preprecessor command ifndef
EXAMPLE
#ifndef DIR/HEADERFILE_H #include "dir/headerfile.h" #endif To answer the specicif question, you cannot use a directory in a preprocessor command like #ifndef.
The include guards in the header file often take the form
#ifndef DIRECTORY_HEADERFILE_INCLUDED #define DIRECTORY_HEADERFILE_INCLUDED //.... contents #endif To include the header, then simple use
#include "dir/headerfile.h" A long while ago some people suugested a double include guard, or redundant include guard, wherein you checked before the #include line to speed things up, as mentioned in this question. The c2 wiki has some further information esp.
"Good compilers make this idiom unnecessary. "
In either case the tendacny is to use _ instead of /, to form a valid macro.
As explained in this question, only alphanumeric characters and underscores (a-z, A-Z, 0-9, and _) are allowed for macro and constants names. You can define your own constant replacing / with _:
#ifndef DIR_HEADERFILE_H
#ifndef DIR_HEADERFILE_H#includedd it doesn't then have the filename/directory #defined.