> For the complete documentation index, see [llms.txt](https://jmdash.gitbook.io/jmdash-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jmdash.gitbook.io/jmdash-docs/jmbasics/directives.md).

# Directives

**JM-'**&#x73; directives are statements for the program itself and not instructions for the preprocessor like in **C**/**C++**

* `#incd` Is used to include libraries in your project ([read more about libraries](/jmdash-docs/jmbasics/syntax101/calling-functions/other-libraries.md))
* `#def` Is used to define functions in your project\
  -> You can also append the `_macro()` option to `#def` to create a **macro** instead of a **definition**.\
  -> The difference between **macros** and **definitions** is that;\
  &#x20;   **Macros** work like **Python**'s define statement and just run a portion of code.\
  &#x20;   On the other hand **Definitions** in **JM-** are used to create entirely new functions\
  &#x20;   (read about [custom library creation](/jmdash-docs/jmbasics/syntax101/calling-functions/custom-libraries.md))
