summaryrefslogtreecommitdiff
path: root/documentation/0.doxygen/example/include/macro.h
blob: a5c1d7f352dcb8200db135279a743bb771a660a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#ifndef _DOXYGEN_EXAMPLE_MACRO_H_
#define _DOXYGEN_EXAMPLE_MACRO_H_

/**
 * @page page_howto_macro How to write doxygen documentation for macro.
 *
 * There are two typical types of macro definitions.
 *
 * - One is to define constant macros. For this type of macro, we
 *   recommend putting documentation after members. See `DOXYGEN_EXAMPLE_CONST_A`
 *   and `DOXYGEN_EXAMPLE_CONST_B` in
 *   <a href="https://github.com/RT-Thread/rt-thread/blob/master/documentation/0.doxygen/example/include/macro.h">documentation/0.doxygen/example/include/macro.h</a>
 *   for exmaple.
 *
 * - The other is to define macros with parameters. For this type of
 *   macro, we recommend using a method similar to documenting for
 *   functions, that is, writing comment block before the macro definition.
 *   More details please see @ref page_howto_function
 *   See `DOXYGEN_EXAMPLE_ABS` in
 *   <a href="https://github.com/RT-Thread/rt-thread/blob/master/documentation/0.doxygen/example/include/macro.h">documentation/0.doxygen/example/include/macro.h</a>
 *   for example.
 */

/**
 * @addtogroup group_doxygen_example
 */

/** @{ */

#define DOXYGEN_EXAMPLE_CONST_A 100 /**< Description of macro const A */
#define DOXYGEN_EXAMPLE_CONST_B 200 /**< Description of macro const B */

/**
 * @brief Computes the absolute value of its argument @a x.
 *
 * @param[in] x input value.
 *
 * @return absolute value of @a x.
 */
#define DOXYGEN_EXAMPLE_ABS(x) (((x)>0)?(x):-(x))

/** @} */

#endif