Previous:The #if...#else...#end Directives Main Index Next:The #switch, #case, #range and #break Directives
The #ifdef and #ifndef directive are similar to the #if directive however they is used to determine if an identifier has been previously declared.
#ifdef ( IDENTIFIER ) TOKENS... [#else TOKENS...] #end
#ifndef ( IDENTIFIER ) TOKENS... [#else TOKENS...] #end
If the IDENTIFIER exists then the first group of tokens is parsed normally and the second set is skipped. If false, the first set is skipped and the second set is parsed. This is especially useful for replacing an undefined item with a default. For example:
#ifdef (User_Thing)
// This section is parsed if the
// identifier "User_Thing" was
// previously declared
object{User_Thing} // invoke identifier
#else
// This section is parsed if the
// identifier "User_Thing" was not
// previously declared
box{<0,0,0>,<1,1,1>} // use a default
#end
// End of conditional part
The #ifndef directive works the opposite. The first group is parsed if the identifier is not defined. As with the #if directive, the #else clause is optional and the #end directive is required.
Previous:The #if...#else...#end Directives Main Index Next:The #switch, #case, #range and #break Directives