2011-08-26 11 views
12

Estoy usando doxygen para comentar mi código C. Estoy utilizando una API extranjera (es decir, no la mía) para la cual la documentación es escasa, así que intento documentar parte de esa API en mis propios archivos fuente. I do tienen el archivo de encabezado para la API externa, pero no es práctico agregar mis propios comentarios a ese archivo.Use doxygen para documentar los miembros de una estructura c fuera de la definición de estructura

Cabecera Exteriores

struct foreignstruct 
{ 
    int a; 
    int b; 
}; 

Mi Cabecera

/** My structure comments... 
struct mystruct 
{ 
    /** Describe field here... */ 
    int field; 
}; 

/** @struct foreignstruct 
* @brief This structure blah blah blah... 
* @??? a Member 'a' contains... 
* @??? b Member 'b' contains... 
*/ 

Qué etiqueta lo uso en lugar del @??? para obtener la salida doxygen correcta (donde 'correcta' significa salida generada por mystruct y foreignstruct son lo mismo)?

Respuesta

15

Tal vez un día Doxygen tener una etiqueta especial para este @field, hasta ese momento, lo siguiente puede ser usado:

/** @struct foreignstruct 
* @brief This structure blah blah blah... 
* @var foreignstruct::a 
* Member 'a' contains... 
* @var foreignstruct::b 
* Member 'b' contains... 
*/ 

¿Qué es una notación taquigráfica para

/** @struct foreignstruct 
* @brief This structure blah blah blah... 
*/ 
/** @var foreignstruct::a 
* Member 'a' contains... 
*/ 
/** @var foreignstruct::b 
* Member 'b' contains... 
*/ 
+0

Este la solución funciona si 'foreignstruct' está en un archivo que es analizado por doxygen. ¿Esperas que funcione si ese archivo no es conocido por doxygen? Veo 'advertencia: no se ha encontrado ningún miembro de la clase que coincida de forma exclusiva para foreignstruct :: a' cuando no se puede encontrar la definición de la línea de acceso directo (que es correcta porque no quiero que doxygen analice ese encabezado foráneo). He intentado agregar la ruta al encabezado ('@struct foreignstruct/full/path/to/header.h') pero obtengo' warning: el nombre 'full/path/to/header.h 'proporcionado como argumento del comando \ class, \ struct, \ union, o \ include no es un archivo de entrada'. – Ben

+0

La estructura debería ser conocida por doxygen. Entonces puede dejar que doxygen analice el encabezado foráneo además de su documentación local o agregar una definición ficticia de la estructura con campos localmente (pero luego no tiene que usar @struct y @var). – doxygen

+0

No era lo que esperaba que fuera la respuesta, pero es la respuesta que esperaba. Gracias por la ayuda. – Ben

Cuestiones relacionadas