As far as I experienced it `@def` is only needed, if you document defines at a different location *other* than directly above [1]
```C
/**
 * @brief A nice define
 */
#define THE_DEFINE
```
or behind it
```C
#define THE_DEFINE  /**< a nice define */
```
style.

For example:
```C
/**
 * @def THE_DEFINE
 * @brief A nice define
 */

/* I have something really important to say here */
#define THE_OTHER_DEFINE     /**< this needs to be here */

#define THE_DEFINE (THE_OTHER_DEFINE)
```

compare `@fn`, `@typedef`, `@var`, etc

[1] http://www.stack.nl/~dimitri/doxygen/manual/commands.html#cmddef