#if[n]def identifier statements [#else statements] [#endif]
identifier - global identifier (named constant, type, function, global variable, etc).
statements - any statements.
If identifier is defined (or not defined, if #ifndef used), are compiled statements after #ifdef (or #ifndef) and skipped statements after #else. Otherwise, are skipped statements after #ifdef (or #ifndef) and compiled statements after #else.
#if... cannot be in other #if... or #else block. If #endif is omitted, are compiled (or skipped) all following statements until end of text.
if function "MyFunction" exists, call it: #ifdef MyFunction MyFunction 100 #endif