#define — Maple v0.0.12 Documentation

### Navigation

- next
- previous |
- LeafLabs |
- Index »
- Complete Language Index »

# `#define`

`#define` is a useful C and C++ feature that allows the programmer to give a name to a constant value before the program is compiled. The compiler will replace references to these constants with the defined value at compile time.

This can have some unwanted side effects. In general, the const keyword is preferred for defining constants.

## Syntax

The following line would define the name `MY_CONSTANT` to have value `value`:

    #define MY_CONSTANT value

Note that the `#` is necessary. It is usually good style for the name to be capitalized, although this is not required.

There is no semicolon after the #define statement. If you include one, the compiler will likely throw cryptic errors in unrelated places. That is, don’t do this:

    // DON'T DO THIS! THE SEMICOLON SHOULDN'T BE THERE!
    #define NAME value;

Similarly, including an equal sign after the `#define` line will also generate a cryptic compiler error further down the page. That is, don’t do this, either:

    // DON'T DO THIS, EITHER! THE EQUALS SIGN SHOULDN'T BE THERE!
    #define NAME = value

## Example

>     #define MAPLE_LED_PIN 13
>     // The compiler will replace any mention of MAPLE_LED_PIN with
>     // the value 13 at compile time.

## See Also

- const

License and Attribution

Portions of this page were adapted from the Arduino Reference Documentation, which is released under a Creative Commons Attribution-ShareAlike 3.0 License.

### Navigation

- next
- previous |
- LeafLabs |
- Index »
- Complete Language Index »