There are a handful more preprocessor commands which can largely be ignored by the beginner. They are commonly used in "include" files to make sure that things are not defined twice.
NOTE : ‘true’ has any non zero value in C. ‘false’ is zero.
#undef This undefines a macro, leaving the name free.
#if This is followed by some expression on the same line. It allows
conditional compilation. It is an advanced feature which can be
used to say: only compile the code between ‘#if’ and ‘#endif’
if the value following ‘#if’ is true, else leave out that code altogether. This is Different from not executing code—the code will not even be compiled.
#ifdef This is followed by a macro name. If that macro is defined then
this is true.
#ifndef This is followed by a macro name. If that name is not defined
then this is true.
#else This is part of an #if, #ifdef, #ifndef preprocessor statement.
#endif This marks the end of a preprocessor statement.
#line Has the form:
#line constant ‘filename’This is for debugging mainly. This statement causes the com-
piler to believe that the next line is line number (constant) and
is part of the file (filename).
#error This is a part of the proposed ANSI standard. It is intended for
debugging. It forces the compiler to abort compilation.
Read more about Prerocessor :- Preprocessor