2010-01-14 17 views
6

Kod:Dokumentowanie zmienne z Doxygen w C

#include <stdio.h> 

/* 
* \var int iOne 
* \brief Integer 1 
*/ 
/* 
* \var int iTwo 
* \brief Integer 2 
*/ 
/* 
* \var int iThree 
* \brief Integer 3 
*/ 

/** 
* \brief Imitates a sheep. 
*/ 
void sheep(); 

/** 
* \brief Main function for test code 
*/ 
int main() { 
    int iOne, iTwo, iThree; 
    iOne = 1; 
    iTwo = 2; 
    iThree = 3; 
    printf("%d %d %d", iOne, iTwo, iThree); 

    return 0; 
} 

void sheep() { 
    printf("Meeeh"); 
} 

ten nie generuje opisy iOne, iTwo i iThree mimo że było moim zamiarem. Jak to naprawić?

Odpowiedz

8

Musisz otworzyć swoje komentarze jako komentarze Doxygen z /**.

mogą być jaśniejsze, aby to zrobić, choć:

int main() { 
    /** \brief Integer 1 */ 
    int iOne; 
    /** \brief Integer 2 */ 
    int iTwo; 
    /** \brief Integer 3 */ 
    int iThree; 
    /** ... and so on ... */ 
} 

W ten sposób można zmienić nazwę zmiennej bez zerwania dokumentację i to także łatwiejszy od innych programistów, którzy potrzebują odczytać kodu źródłowego, ponieważ opis zmiennej znajduje się obok niej, a nie gdzie indziej w pliku.

+0

Dzięki za poradę. Masz rację co do tego, że twój kod ma więcej sensu, ale chcę wiedzieć, jak prawidłowo \ var zdefiniować w moim kodzie. Jaki byłby właściwy sposób, aby to zrobić? – Pieter

+1

Pieter: Po pierwsze, myślę, że musisz udokumentować sam plik ('/ ** @ file * /'), a potem, jak powiedziałem w mojej odpowiedzi, nie sądzę, aby Doxygen mógł dokumentować zmienne lokalne. – Joey

+2

Nie sądzę, że to zadziała, ponieważ są to zmienne lokalne. Powinieneś ulepszyć tę odpowiedź, ponieważ na razie jest ona myląca. –

13

DOxygen został stworzony do dokumentowania klas i nagłówków funkcji lub, innymi słowy, interfejsu interfejsu. Pomyśl o dokumentacji jako o czymś, co studiują inni programiści, aby prawidłowo korzystać z twoich zajęć i funkcji. Nie należy używać DOxygen do dokumentowania implementacji. Zamiast tego udokumentuj zmienne lokalne w źródle za pomocą // lub /* */.

Istnieje kilka sposobów na komentarze w DOxygen, niektóre przykłady (dla zmiennych członkowskich) można znaleźć w instrukcji here. Skopiowałem je poniżej.

int var; /*!< Detailed description after the member */ 

int var; /**< Detailed description after the member */ 

int var; //!< Detailed description after the member 
     //!< 

int var; ///< Detailed description after the member 
     ///< 

int var; //!< Brief description after the member 

int var; ///< Brief description after the member 
+0

Uważam, że to trochę zagmatwane, że najpierw wyjaśnisz, że Doxygen nie powinien być używany, ale pokaże pełne wsparcie, jakie daje Doxygen dla jego udokumentowania. Czy masz jakieś źródło, które mówi, że Doxygen miał udokumentować "interfejs", ale nie resztę? – Zimano

+1

Podany fragment kodu pokazuje sposoby dokumentowania zmiennych, które są członkami "file, struct, union, class lub enum". Ponieważ zmienne OP 'iOne, iTwo, iThree' są wewnętrzne dla' main() ', nie są dostępne w żadnym zakresie poziomu interfejsu i dlatego nie będą dokumentowane przez Doxygen. Mówiąc inaczej: Doxygen nie generuje i nie powinien generować dokumentacji wyjaśniającej, co zmienna 'i' ma w instrukcji' for (int i = 0; i <10; i ++) 'ponieważ zakres' i' jest zbyt ograniczony, aby miało to sens. – Richard

+1

Teraz rozumiem. Dzięki! – Zimano

Powiązane problemy