I have to write some code in C, so I decided to learn doxygen (and subversion).
I want my docs to be concise and reasonably unredundant. Best Tips for documenting code using doxygen? was helpful, but not enough. I need anti-redundancy suggestions.
is there a reference list of doxygen abbreviations with equivalents somewhere? sometimes a whole keyword seems to be needed, sometimes it seems to be inferred.
/*! \fn int main(int argc, char *argv[])
* \brief the main function prototype
* \param argc a counter to arguments
* \param argv the arguments
* \return the program exit code
*/
int main(int argc, char *argv[])
elsewhere
/*! \fn int main(int argc, char *argv[])
* \details long explanation is that I just return 0
* \seealso main prototype
*/
int main(int argc, char *argv[]) { return 0; }
has a lot of redundancy that needs to be kept in check over revisions. I have discovered some shortcuts, but this has been random. some in the above thread have claimed that \file is not needed, the doxygen manual suggests it is sometimes needed for global variables. /*!< is used after variables in structs */ which is a less redundant abbreviation of something longer, I presume (but I am not sure). Is \details necessary, or are longer comments after the \brief assumed to be details? some posts have stated that filenames are kept by the version control system, but my subversion manual does not mention doxygen, and my doxygen manual does not mention subversion.
/*!< ... */just means that the documentation comment applies to the previous declaration, not the next one. It’s often used instructdefinitions merely because it can be aesthetically nicer to have the documentation afterwards if the documentation can fit on the same line, but I’m pretty sure/*! ... */can be used before astructmember and it’ll work just the same. - icktoofay/*! ... */before, then how do we match it to individual parts of a structure? I wonder whether/*!< ... */may also be better used to avoid the need for\param?! - ivo Welchstruct person { /*! ... */ const char *name; /*! ... */ unsigned int age; };- icktoofay