2010-01-14 24 views
6

Código:variables de Documentación con Doxygen en 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"); 
} 

Esto no genera descripciones de iOne, iTwo y iThree aunque esa era mi intención. ¿Cómo puedo solucionar esto?

Respuesta

8

Debe abrir sus comentarios como comentarios de Doxygen con /**.

Puede ser más clara de hacer esto, sin embargo:

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

De esta manera se puede cambiar el nombre de la variable sin romper su documentación y también es más fácil en otros programadores que necesitan para leer su código fuente, porque la descripción de la variable se encuentra al lado, no en otra parte del archivo.

+0

Gracias por el asesoramiento. Tiene razón acerca de que su código tiene más sentido, pero quiero saber cómo hacer la definición de \ var correctamente dentro de mi código. ¿Cuál sería la forma correcta de hacer eso? – Pieter

+1

Pieter: Antes que nada, creo que necesitas documentar el archivo en sí mismo ('/ ** @file * /') y luego, como dije en mi respuesta, no creo que Doxygen pueda documentar las variables locales. – Joey

+2

No creo que esto funcione, ya que son variables locales. Deberías mejorar esta respuesta, ya que por ahora es engañosa. –

13

DOxygen se creó para documentar las clases y los encabezados de funciones o, en otras palabras, la interfaz . Piense en la documentación como algo que otros programadores estudian para utilizar sus clases y funciones de manera adecuada. No debe usar DOxygen para documentar su implementación. En su lugar, documente sus variables locales en la fuente con // o /* */.

Hay varias maneras de hacer comentarios en DOxygen, algunos ejemplos de los cuales (para las variables de miembro) se pueden ver en el manual here. Los he copiado a continuación.

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

Me resulta un poco confuso que primero explique que Doxygen no debe usarse para esto, pero luego muestra todo el soporte que Doxygen brinda para documentarlo. ¿Tiene alguna fuente que indique que Doxygen estaba destinado a documentar "la interfaz" pero no el resto? – Zimano

+1

El fragmento que proporciono muestra formas de documentar variables que son miembros de "archivo, estructura, unión, clase o enumeración". Como las variables 'iOne, iTwo, iThree' de OP son internas a' main() ', no son accesibles en ningún ámbito de nivel de interfaz y, por lo tanto, Doxygen no las documentará. Dicho de otra manera: Doxygen no genera, y no debería, documentación que explique qué hace la variable 'i' en la instrucción' for (int i = 0; i <10; i ++) 'porque el alcance de' i' es demasiado limitado para que tenga sentido. – Richard

+1

Entiendo ahora. ¡Gracias! – Zimano

Cuestiones relacionadas