2009-04-16 2 views
5

Мне интересно узнать, возможно ли иметь комментарии в функции (c, C++, java) таким образом, чтобы doxygen мог поместить их в сгенерированный html-файл.Как уметь извлекать комментарии из функции в doxygen?

, например:

function(...) 
{ 
do_1(); 
/** 
* Call do_2 function for doing specific stuff. 
*/ 
do_2(); 
} 
+0

Не могли бы вы дать небольшой пример того, как должен выглядеть ваш код (с комментариями), и где в документации, по вашему мнению, должны отображаться комментарии? – lothar

ответ

7

Нет, Doxygen не поддерживает комментарии блоков внутри функциональных органов. Из инструкции по эксплуатации:

Doxygen позволяет разместить блоки документации практически в любом месте (исключение находится внутри тела функции или внутри нормального блока комментариев стиля C).

Раздел: Doxygen documenting the code

+0

Спасибо. Я не заметил, что – INS

5

Комментарии внутри кода предназначены для объяснения конкретного фрагмента кода реализации для другого программиста, чтобы понять, а не особенность функции для пользователей, чтобы читать о.

Если он должен быть документирован для пользователей, это должно быть сделано находящихся функционального блока, на комментарии, определяющий интерфейс (подпись, а также предпосылки, Постусловие, примеры использования или все, что вы считаете необходимыми).

+0

+1 Вот почему я попросил его привести пример. Чтобы узнать, кем может быть аудитория этого комментария. – lothar

+0

Как насчет этого: если он документирован для пользователей, он должен быть в файле заголовка. Если это документация для сопровождающих, то она должна быть в файле c и даже в теле кода. – Michael

16

Я не знаю C, но я делаю это каждый день в Objective-C, где у меня есть комментарии, такие как:

/// This method perform the following operations: 
- (void) myMethodWith: (id) anObjectArgument 
{ 
    /// - do op1 
    [self op1]; 

    /// - do op2 
    op2(anObjectArgument); 
} 

, который делает как:

Этот метод выполняет следующие операции:

  • делают ОР1

  • сделать ФП2


Edit:следующий комментарий Dana в Сане, по поводу моего понимания Doxygen документации и почему она не входит в противоречие с моим опытом.

Насколько я понимаю и интерпретирую документацию Doxygen, это не противоречит quote provided by Aaron Saarela. В начале звена он обеспечивает, есть пункт о документации кузова:

Для каждого элемента кода есть два (или в некоторых случаях три) типа описаний, которые вместе образуют документация: краткое описание и подробное описание, оба являются опционально.Для методов и функций существует также третий тип описания, так называемого «в теле» описания, которое состоит из конкатенации всех блоков комментариев найденных в теле метода или функции.

Это означает, что это нормально, чтобы поставить документацию Doxygen в тело функции или метода. Это то, что я описал выше моего ответа.

На мой взгляд, абзац, цитируемый Аароном, относится к документации, которая обычно помещается перед объявлением функции или метода или реализуется. Это та, которая описывает параметры, возвращаемые значения и т. Д. То, что документация заголовка не может быть помещена в тело функции или метода.

Но подробная документация, касающаяся каждого шага алгоритма внутри тела, отлично обрабатывается Doxygen.

+1

Это противоречит документации, которую Aaron ссылается на выше. Возможно, документация устарела? –

+4

IIRC, вам нужно запустить документацию функции вне тела, но вполне нормально использовать грамотный стиль программирования, где абзацы о функции чередуются с источником через тело функции. Результат с осторожностью, результат в высшей степени читается как в исходном файле, так и в сгенерированной документации. – RBerteig

Смежные вопросы