Я документирую свой код C с помощью doxygen. Для лучшей читаемости я группирую документацию по каждой паре файлов .c/.h (иногда также к большему количеству файлов) с defgroup
и addtogroup
(см. doxygen in c: grouping of defines). Страницы файлов выглядят отлично, но на страницах группы/модуля все переменные документы удваиваются. Для каждой переменной, объявленной (с extern) в файле заголовка и определенной в файле .c, есть 2 записи для каждой (как в сводке, так и в части описания). Функции и все остальное перечислены только один раз ...C и doxygen - удаление дубликатов переменной документации
Как я могу избавиться от документированной переменной документации на страницах группы/модуля?
Мои исходные файлы выглядеть следующим образом: .h файл:
/** @file
* blabla
* @author bla
*/
/// @addtogroup MY_GRP
/// @{
#define SOMEDEF1 1
/// @name Special defs
/// @{
#define SOMEDEF2 2
/// @}
enum someenum {
foo,
bar
};
extern int some_variables;
extern void some_proc(int baz);
/// @}
.c файл:
/** @file
* blabla
* @author bla
*/
/** @defgroup MY_GRP A test group.
* Description
*/
/// @{
#include "my.h"
/// Important variable.
int some_variable;
/** Important proc
* Description
* @param baz need this
*/
void some_proc(int baz) {
// code
}
/// @}
Из любопытства, почему вы объявляете 'some_proc()' через extern, а также 'some_viarables()'? Этот extern на 'some_proc()' кажется ненужным. Файлы других файлов, которые содержат заголовок, не будут нуждаться в повторном вызове 'some_proc()' через extern в любом случае. – Nick
Вы правы: это не обязательно, но это тоже не наносит вреда. ИМХО становится более ясным и более последовательным. – Bytemaster