Добавление ссылок на typedef в doxygen

#c #doxygen

#c #doxygen

Вопрос:

В следующем примере сгенерированный файл doxygen превратит только #mystruct и mystruct в ссылки на определение mystruct . Есть ли в любом случае одинаковое поведение для mytype, myenum и FIRST_ELEMENT или это неотъемлемое ограничение doxygen?

 typedef enum myenum {
  FIRST_ELEMENT,  /**< Some example. */
  SECOND_ELEMENT,  /**< Some other example. */
} myenum;

typedef int16_t mytype;  /**< some example */

typedef struct mystruct {
    mytype x;   /**< my member */
} mystruct;


/**
 * @brief       My test function.
 *
 * This function uses #mytype, #mystruct and #myenum.
 *
 * @param[in]   x   input 1.
 * @param[in]   y   input 2.
 * @param[in]   z   input 3 expected to be #FIRST_ELEMENT.
 */
void foo(mytype x, mystruct y, myenum z);
  

Комментарии:

1. Я попробовал это (добавив только /** file */ начало файла), и появились все ссылки на mytype, myenum и FIRST_ELEMENT. Это было с doxygen 1.8.17.

2. Да, это была моя ошибка: случилось то, что мои функции были сгруппированы вместе с defgroup, а не с объявлениями типов. По-видимому, отсутствие defgroup вокруг типов позволило определению struct оставаться видимым и связанным с ним в html, но не с другими типами.

Ответ №1:

Все, что я описал, на самом деле работает так, как ожидалось.

Документирование ошибки, которую я допустил здесь, на случай, если другие сделают то же самое.

Моя ошибка заключалась в том, что в базе кода, которую я имел (а не в примере, который я показал здесь) Мои функции были сгруппированы вместе с defgroup, а не с объявлениями типов. По-видимому, отсутствие defgroup вокруг типов позволило определению struct оставаться видимым и связанным с ним в html, но не с другими типами.