The #ifndef directive is similar to the #ifdef directive except that the following lines (up to the properly nested #else or #endif) will be compiled if the 'identifier' has NOT been defined by a #define.
This directive too will probably disappear from the preprocessor in some future release of the ANSI 'C' language specification. Instead use: #if !defined(id)