Forum: Mikrocontroller und Digitale Elektronik Vermeidung doppelter Dokumentation in .h-Datei mit Doxygen


von Michael K. (mkfein)


Lesenswert?

Hallo.

Ich habe .c und .h Dateien. Die darin enthaltene Funktionen möchte ich 
mit Doxygen dokumentieren. Ich habe die detailierte Beschreibung zu 
jeder Funktion in der .c-Datei untergebracht. In der .h-Datei befindet 
sich nur eine Kurzschbreibung (@brief).

Leider wird meine detailierte Beschreibung in der Dokumentation der 
.h-Datei wiederholt. Dies möchte ich aber nicht. Vielmehr wäre mir ein 
Link auf die detailierte Beschreibung von der .c-Datei lieber.

Ich habe schon viele Suchen bezüglich dieses Themas bei Google 
gestarter. Leider ohne Erfolg.

Vielleicht noch ein paar ergänzenden Hinweise:

Im Header jeder .c wie auch .h-Datei steht @file x.c bzw. x.h

Die detailierte Beschreibung habe ich unmittelbar vor der Funktion in 
der .c-Datei platziert.
/// @li ….
/// @li ….
void xy(void)
{
}

Vielen Dank an alle die helfen könnten.
von Hannes J. (pnuebergang)


Lesenswert?

In .h-Dateien sollten die Deklarationen von Dingen stehen, die 
"öffentlich" (implizit oder explizit extern) sind. Dort und nur dort 
werden die Deklarationen auch vollständig mit Doxygen-Kommentaren 
dokumentiert.

Die Idee dahinter ist, die öffentliche Schnittstelle eines Moduls in der 
Datei zu dokumentieren, die für andere Module die öffentliche 
Schnittstelle deklariert und von anderen Modulen per #include geladen 
wird.

In .c-Dateien stehen die Definitionen von öffentlichen und die 
Definitionen und Deklarationen von privaten (static) Dingen. Dort wird 
nur das dokumentiert, was noch nicht in den .h-Dateien dokumentiert ist, 
d.h. die privaten (static) Funktionen, Variablen, Konstanten, etc., die 
außerhalb der Datei nicht sichtbar sind und keine öffentliche 
Schnittstelle eines Moduls darstellen. Als nur interne 
Entwicklerdokumentation.

@brief ist nicht für eine separate Kurzdokumentation gedacht, sondern 
für eine einleitende, prägnante Zusammenfassung was eine 
Funktion/Variable/etc. denn macht, gefolgt von einer detaillierten 
Beschreibung. @brief gehört zu detaillierten Beschreibung. Die 
Kurzbeschreibungen tauchen zum Beispiel in Übersichtstabellen auf. 
JavaDoc-Benutzer kennen das in der Form, dass bei JavaDoc der erste Satz 
in einer Beschreibung automatisch als Kurzbeschreibung verwendet wird 
(Doxygen kann ebenfalls so konfiguriert werden, dass es das automatisch 
ohne @brief macht).
von Michael K. (mkfein)


Lesenswert?

Hallo und vielen Dank für die Antwort.

Ich habe den Dokumentationsblock für die globalen Funktion nun in der 
.h-Datei untergebracht.

Das Problem besteht aber weiterhin. Die, jetzt in der .h-Datei 
befindliche Dokumentation taucht im von Doxygen erstellten pdf auch in 
der Beschreibung der .c-Datei auf.
Wie kann dies verhindert werden?

Vielen Dank für alle Antworten.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.