Wie kann ich Doxygen davon abhalten, #defines in einer C-Datei zu dokumentieren?

8

Ich habe #define -Werte in Kopfzeilen, die Doxygen sicher dokumentieren möchte, aber ich habe andere in C Dateien, die ich als statische Konstanten behandle, und ich möchte nicht, dass Doxygen sie dokumentiert. Etwas so einfach und dumm wie

%Vor%

Wie kann ich Doxygen davon abhalten, diese #define s in die erstellte Dokumentation einzufügen? Ich habe versucht, es mit @internal zu markieren, aber das schien nicht zu helfen.

Eine etwas verwandte Frage zu Doxygen und #define , wie bekomme ich:

%Vor%

um "SOME_CONSTANT" und "Eine Erklärung", aber nicht "1234" in die Ausgabe zu schreiben?

    
Chris Nelson 04.11.2009, 16:40
quelle

6 Antworten

2

Sie können jeden Teil des Codes von der Doxygen-Analyse mit \cond ... \endcond -Tags ausschließen.

bearbeiten: Einige verwandte Fragen:

mouviciel 04.11.2009, 16:46
quelle
9

Sie müssen die Befehle \cond und \endcond nicht verwenden. Sie können den Initialisierer ausblenden, indem Sie einfach den Befehl \hideinitializer verwenden:

%Vor%

Bezüglich der ersten Frage können Sie HIDE_UNDOC_MEMBERS = YES setzen und nur die Makros, die einen Doxygen-Dokumentationsblock haben, werden in der Ausgabe angezeigt.

    
bszente 12.04.2011 14:13
quelle
4

Sie können MAX_INITIALIZER_LINES = 0 in Ihrer Doxy-Datei setzen, um die Werte Ihrer Defines auszublenden.

    
emp 08.03.2011 17:06
quelle
1

Sie möchten nur dokumentieren, was in den .h -Dateien deklariert ist. Ich gehe davon aus, dass Sie alle statischen Funktionen und Variablen als static in Ihren .c -Dateien deklarieren. Alle übrigen werden in .h entsprechenden Dateien ebenfalls deklariert. Dies sind Ihre "öffentlichen" Mitglieder.

Was ich in diesem Fall gerne tue, und ich glaube, dass Doxygen eher dazu gedacht war, auf diese Weise benutzt zu werden, ist:

  • in Ihrem Doxyfile , legen Sie EXTRACT_ALL = NO fest und fügen Sie das Verzeichnis hinzu Wo Ihre .h -Dateien sind INPUT
  • Fügen Sie /** \file */ allen Ihren .h -Dateien hinzu (aber nicht Ihre .c -Dateien).

Dadurch wird nur das indiziert, was in Ihren .h -Dateien enthalten ist. Sie können das Verzeichnis, das Ihre .c Dateien enthält, trotzdem zu INPUT hinzufügen, und Sie werden nach zusätzlicher Dokumentation für Ihre "public" Mitglieder durchsucht ...

    
ericbn 21.01.2014 20:23
quelle
0

Es wird zweifellos immer noch laut und unnatürlich erscheinen, aber um Ihre andere Frage zu beantworten, versuchen Sie:

%Vor%     
Ben Hocking 14.03.2010 20:07
quelle
0

Ich habe dieses Problem gelöst, indem ich meine Dokumentation aus der .c-Datei in die .h-Datei verschoben habe. Führen Sie dann doxygen nur für die .h-Datei aus.

Dann sind die Elemente, die ich dokumentieren möchte (die 'öffentlichen' Elemente), intrinsisch, was Doxygen aufnimmt.

Da ich zuvor darauf geachtet habe, öffentliche Elemente in die .h-Datei und "private" Elemente in die .c-Datei zu stellen, funktioniert das sehr gut.

Diese Technik kam mir in den Sinn, als ich bemerkte, dass Doxygen die Includes einzog. Es fiel mir auf, dass, wenn ich auch die Untermenge von Includes verschieben würde, die das aufrufende Modul mein Modul verwenden müsste, diese Liste ebenfalls dokumentiert wäre.

Diese Technik hat einen zusätzlichen Vorteil: Ich kann die Dokumentation in ein Terminalfenster und die Quelle in ein anderes Terminalfenster legen, während ich die Dokumentation aktualisiere.

    
Michael Potter 24.04.2014 03:05
quelle

Tags und Links