10
votes

Comment puis-je garder Doxygen de documenter #defines dans un fichier C?

J'ai #define des valeurs dans les en-têtes que je souhaite certainement Doxygen à documenter, mais j'ai d'autres personnes dans C les fichiers que je traite comme des constantes statiques et je ne veux pas Doxygen pour les documenter. Quelque chose aussi simple et stupide que xxx

Comment puis-je garder Doxygen de mettre ces #define s dans la documentation qu'elle crée? J'ai essayé de le marquer avec @Internal mais cela ne semblait pas aider.

une question quelque peu liée sur Doxygen et #define , Comment puis-je obtenir: xxx

mettre "quelque_conset" et "une explication" mais pas "1234" dans la sortie?


0 commentaires

7 Réponses :


3
votes

Vous pouvez exclure toute partie du code de DOXYGEN analyse avec \ COND ... \ endcond Tags.

edit: Certaines questions connexes:


4 commentaires

Je suppose que cela aborde le numéro de fichier #define in .c (je peux entourer ces lignes avec contrôle conditionnel). Cela semble bruyant et non naturel, cependant. Et n'est pas du tout d'adresse cacher des valeurs pour # définir les constantes. (Peut-être que je n'aurais pas dû demander à une question complexe, mais j'espérais qu'il y avait des éléments spécifiques spécifiques à la définition qui pourraient résoudre les deux problèmes.)


Je ne sais pas comment révéler une constante de définition sans révéler sa valeur.


J'ai Cond / Endcond Travailler, mais j'aimerais vraiment savoir pourquoi interne n'a pas fonctionné. Mon Doxygen Fu est définitivement faible. :-(


Malheureusement, je partage votre malentendu de @Internal. De nombreux aspects de Doxygen sont toujours obscurs pour moi. La courbe d'apprentissage est lente mais valable.



1
votes

Cela semblera toujours toujours bruyant et non naturel, mais pour répondre à votre autre question, essayez:

/** An explanation */
#define SOME_CONSTANT /** @cond */ 1234 /** @endcond */


0 commentaires

5
votes

Vous pouvez définir max_initializer_lines = 0 dans votre fichier doxyfile pour masquer les valeurs de vos définies.


0 commentaires

12
votes

Il n'est pas nécessaire d'utiliser le \ COND et \ endcond . Vous pouvez masquer l'initialiseur en utilisant simplement la commande \ hideinitializer : xxx

concernant la première question, vous pouvez définir hide_undoc_member = oui et Seules les macros ayant un bloc de documentation Doxygen seront affichées dans la sortie.


0 commentaires

2
votes

Vous voulez seulement documenter ce qui est déclaré dans les fichiers .h . Je suppose que vous déclarez toutes les fonctions statiques et variables comme statique dans vos fichiers .c . Tous les restants sont déclarés dans .h Les fichiers correspondants également. Ce sont vos membres "public".

Ce que j'aime faire dans ce cas, et je crois que Doxygen était plus conçu pour être utilisé de cette façon est:


0 commentaires

0
votes

J'ai résolu ce problème en déplaçant ma documentation du fichier .C au fichier .h. Puis exécutez Doxygen uniquement sur le fichier .h.

Ensuite, les éléments que je veux documenter (les éléments «public») sont intrinsèquement ce que Doxygen prend en charge.

Parce que j'ai déjà été prudent de mettre des éléments «public» dans le fichier .h et les éléments «privés» dans le fichier .c que cela fonctionne très bien.

Cette technique est venue à l'esprit quand j'ai remarqué que Doxygen tirait dans la notice. Il m'a frappé que si je devais également déplacer le sous-ensemble d'inclure que le module appelant devait utiliser mon module, cette liste serait également documentée.

Cette technique a un avantage supplémentaire: je peux mettre la documentation dans une fenêtre de terminal et la source dans une fenêtre de terminal différente lors de la mise à jour de la documentation.


0 commentaires

0
votes

Parfois, vous avez peut-être une définition que vous souhaitez documenter, mais que vous voulez que Doxygen le traite différemment (ou même l'ignorer complètement pour éviter d'analyser les erreurs). Pour cela, vous pouvez définir le #define dans Doxygen différemment de votre code source.

Exemple: Certains compilateurs permettent une liaison variable à des segments spécifiques, c'est-à-dire.: P> xxx pré>

=> doxygen analyse la pièce "segment_myvar_in_memory" comme nom de variable qui n'est pas souhaité. Nous pourrions utiliser une définition pour cela: P>

#define __link_to_segment(name)


0 commentaires