为结构的成员记录宏(带有doxygen)

tom*_*gic 2 c doxygen

我更喜欢在我的结构定义中定义某些宏,因此很容易看到给定成员的可能值.例如:

typedef struct foo_t {
    uint16_t flags;
        #define FOO_FLAG_BELL       0x0001
        #define FOO_FLAG_BOOK       0x0002
        #define FOO_FLAG_CANDLE     0x0004
        #define FOO_FLAG_LANTERN    0x0008
}
Run Code Online (Sandbox Code Playgroud)

Doxygen希望在顶部列出所有其他宏的宏.我已经使用分组标记(//@{//@})将这些宏组合在一起,并用这个组命名foo_t.flags,但我想找到一种方法来将值与结构更紧密地联系起来.我应该使用\link\endlink以某种方式链接到该组名称?

Pat*_*ter 5

使用枚举.

typedef struct foo_t {
  enum flag_define { 
    FOO_FLAG_BELL    =  0x0001,    /**< The flag for the bell or whatever. */
    FOO_FLAG_BOOK    =  0x0002,
    FOO_FLAG_CANDLE  =  0x0004,
    FOO_FLAG_LANTERN =  0x0008,
  } flags:16;                      /**< My flag thing */
}  foo_t;
Run Code Online (Sandbox Code Playgroud)