2010-07-18 6 views
2

J'ai quelques grands codes, pour la plupart procéduraux, qui doivent être bien documentés. Cela implique généralement l'utilisation répétée d'un certain nombre de fonctions qui doivent être exécutées dans un certain ordre. Doxygen est un excellent produit, mais il semble très orienté vers la documentation des codes POO. Quelqu'un at-il des conseils sur la façon d'utiliser le doxygène de manière naturelle pour documenter le travail de procédure?Doxygen pour les programmes procéduraux

+0

Si ces fonctions doivent être exécutées dans un certain ordre, écrivez un wrapper. – user877329

Répondre

2

Il n'y a rien d'intrinsèquement OOP sur la façon dont fonctionne doxygen. Il est juste capable d'extraire plus d'informations sur le code OO car il contient plus d'informations (par exemple, les graphes d'héritage).

Nous utilisons doxygen pour le code C pur et cela fonctionne tout aussi bien, moins les informations que le langage C ne fournit pas par rapport à C++. Utilisez simplement les fonctions de groupage de doxygen (@addtogroup et al) pour organiser la documentation générée et vous êtes prêt à le faire.

+0

Alors, qu'en est-il des choses de type énumération, pas seulement en documentant des fonctions individuelles ou en les regroupant, mais en les montrant dans un ordre quelconque? Par exemple, la partie itérative principale du programme doit appeler, disons, 20 à 40 fonctions dans un ordre spécifique. J'aimerais pouvoir coller une sorte de bloc de commentaire au-dessus de chaque appel de fonction dans cette grande routine qui décrit ce qui est fait, et faire que la sortie de la grande routine soit une sorte de liste ordonnée. – Aurelius

+0

Si vous avez un tas de fonctions qui doivent être appelées dans un certain ordre, vous devez documenter * that * dans ces API de fonctions - les regroupant probablement dans un groupe, et demander à la description du groupe de dire comment elles sont supposées être utilisé ensemble. Mais vous ne documentez pas ce fait sur les sites d'appel. – vanza

+0

Merci, je vais essayer aujourd'hui et voir comment ça marche. J'avais préféré documenter ces choses sur les sites d'appels, puisqu'il s'agit d'un programme CUDA, et la façon dont les noyaux sont appelés avec des arguments supplémentaires de grille/thread/mémoire change le comportement des noyaux eux-mêmes. c'est-à-dire que des informations/arguments sont présents sur les sites d'appel qui ne sont pas visibles dans les fonctions elles-mêmes. – Aurelius

Questions connexes