Używam doxygen do komentowania mojego kodu C. Korzystam z obcego API (tj. Nie własnego), którego dokumentacja jest skąpa, dlatego zamierzam udokumentować niektóre z tych API w moich własnych plikach źródłowych. I do mają plik nagłówkowy dla obcego API, ale nie jest praktyczne dodawanie własnych komentarzy do tego pliku.Użyj doxygen do dokumentowania elementów struktury c poza definicją struktury
Header obce
struct foreignstruct
{
int a;
int b;
};
My Header
/** 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...
*/
Co tag używać zamiast @???
aby uzyskać poprawny wynik doxygen (gdzie 'poprawny' oznacza wygenerowane wyjście mystruct
i foreignstruct
są takie same)?
This rozwiązanie działa, jeśli 'foreignstruct' znajduje się w pliku parsowanym przez doxygen. Czy spodziewasz się, że zadziała, jeśli ten plik nie jest znany z doxygen? Widzę komunikat 'ostrzeżenie: nie znaleziono jednoznacznie pasującego elementu klasy dla foreignstruct :: a', gdy nie można znaleźć definicji foreignstruct (co jest poprawne, ponieważ nie chcę, aby doxygen analizował ten obcy nagłówek). Próbowałem wcześniej dodać ścieżkę do nagłówka ('@struct foreignstruct/full/path/to/header.h'), ale otrzymuję komunikat' warning: nazwa 'full/path/to/header.h 'podana jako argument Komenda \ class, \ struct, \ union lub \ include nie jest plikiem wejściowym. – Ben
Struktura powinna być znana z doxygen. Możesz więc pozwolić, aby doxygen przeanalizował obcy nagłówek oprócz lokalnej dokumentacji lub dodaj fałszywą definicję struct z polami lokalnie (ale wtedy nie musisz używać @struct i @var). – doxygen
Nie to, co miałem nadzieję, że odpowiedź będzie, ale jest to odpowiedź, której oczekiwałem. Dzięki za pomoc. – Ben