Define directive

Format

 * 1) define Name Value
 * 2) define Name(Parameters) Value

Description
The #define statement creates a macro that is substituted for Name. Substitution only applies to whole words. Text inside of double or single quotes is not processed for substitution, so  would not be modified even if a macro named BIG were defined. That is different from, where BIG is an embedded expression, which does get processed for macro substitution.

Example
var/daytime = NIGHT //daytime = 1
 * 1) define DAY  0
 * 2) define NIGHT 1

Example
var/x = SQR(2)      //x = ((2)*(2)) = 4
 * 1) define SQR(X) ((X)*(X))

Parentheses
Note that it's usually important to use parentheses around any arguments you use in a macro. Otherwise strange results may occur if you use an expression such as 2+3. In the SQR(X) example, if there were no parentheses around each X then the expansion of the macro would be (2+3*2+3). Since the * operator has a higher precedence than + the result is 11, not 25 as expected. It's equally important to put parentheses around the entire macro for the same reason.