Share via


#IFDEF | #IFNDEF ... #ENDIF Preprocessor Directive

Conditionally includes a set of commands at compile time if a compile-time constant is defined.

#IFDEF | #IFNDEF ConstantName 
      Commands
[#ELSE 
      Commands]
#ENDIF

Parameters

  • #IFDEF
    Specifies that a set of commands is included at compile time when the ConstantName is defined.

    The following items describe how a set of commands is included at compile time when you include #IFDEF:

    • If ConstantName is defined, the set of commands following #IFDEF and preceding #ELSE or #ENDIF (whichever occurs first) is included at compile time.

    • If ConstantName is not defined and #ELSE is included, the set of commands following #ELSE and preceding #ENDIF is included at compile time.

    • If ConstantName is not defined and #ELSE is not included, no commands within the #IFDEF ... #ENDIF structure are included at compile time.

  • #IFNDEF
    Specifies that a set of commands is included at compile time when the ConstantName is not defined.

    The following items describe how a set of commands is included at compile time when you include #IFNDEF:

    • If ConstantName is not defined, the set of commands following #IFNDEF and preceding #ELSE or #ENDIF (whichever occurs first) is included at compile time.

    • If ConstantName is defined and #ELSE is included, the set of commands following #ELSE and preceding #ENDIF is included at compile time.

    • If ConstantName is defined and #ELSE is not included, no commands within the #IFNDEF ... #ENDIF structure are included at compile time.

  • ConstantName
    Specifies the compile-time constant whose existence determines whether a set of commands is included at compile time. Compile-time constants are defined with #DEFINE.

  • Commands
    Specifies the set of commands that is included at compile time.

Remarks

You can nest an #IFDEF | #IFNDEF ... #ENDIF structure within another #IFDEF | #IFNDEF ... #ENDIF structure.

Comments can be placed on the same line after #IFDEF, #IFNDEF, #ELSE, and #ENDIF. These comments are ignored during compilation and program execution.

Example

The following example creates a compile-time constant named MYDEFINE. #IFDEF ... #ENDIF displays a message if the compile-time constant has been defined.

#DEFINE MYDEFINE 1

#IFDEF MYDEFINE   
   WAIT WINDOW "MYDEFINE exists"
#ELSE
   WAIT WINDOW "MYDEFINE does not exist"
#ENDIF

See Also

Reference

COMPILE Command

#DEFINE ... #UNDEF Preprocessor Directive

#IF ... #ENDIF Preprocessor Directive

#INCLUDE Preprocessor Directive

Other Resources

Preprocessor Directives (Visual FoxPro)