Good looking documentation on BEntry::Exists().

#ryland grace#phm#rocky the eridian#project hail mary spoilers
#batman#dc comics#dc#bruce wayne#dick grayson#tim drake#batfamily#batfam#dc fanart



seen from United States
seen from Australia
seen from United States
seen from United States
seen from Malaysia
seen from T1
seen from Malaysia
seen from Tunisia
seen from China

seen from United States
seen from United States

seen from Malaysia
seen from Argentina
seen from United States
seen from Yemen
seen from United States
seen from United States
seen from United States
seen from United States

seen from United States
Good looking documentation on BEntry::Exists().

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch ⢠No registration required ⢠HD streaming
Who was gonna tell me doxygen existed??
Who??
I am become doxygen stan until I learn of something better.
Doxygen Primer
By Ian Elsbree, 2022-09-19
Table of Contents
Doxygen Primer
Table of Contents
Introduction
Doxygen
Doxygen Comments
Doxyfiles
Using Someone Else's Doxyfile
Turning LaTeX into PDF
Conclusion
Introduction
Welcome to the Doxygen Primer! This document is meant to get you up to speed on Doxygen, a documentation generator that makes it easy to document your code. This primer is not an in-depth usage guide, nor a complete documentation, nor an exhaustive list of features. It is only a basic introduction to the usage of Doxygen, primarily written for use in the CS-120, CS-170, and CS-180 courses. Of course, this document will apply to other uses, but its scope is limited intentionally. With that said, let's see what all the fuss is about.
Doxygen
Doxygen is a program. It runs when you run the command doxygen. It expects something called a doxyfile (explained later) to be in the current working directory, named Doxyfile.
Here is the official Doxygen Manual.
Doxygen's purpose is to scan source code files, in this context .c or .cpp (or .h) files, and generate documentation on the code within them, so that other programmers can more easily understand the purpose of your code and how to use it. It does this by generating files in either HTML format or LaTeX format (or both), which you can then use either as an HTML webpage, or use another tool such as pdf-latex to generate a PDF file from the LaTeX files. Either of these options will result in a document which explains how your code works to the reader.
Doxygen is not complicated to use in a simple use case. Most basically, you only have to run the command doxygen -g to generate a default configuration file, and then run the command doxygen to create the documentation for your code. However, there is some more information which will be useful to know about.
Doxygen Comments
Doxygen scans the comments in your source code. To make Doxygen aware of the information it needs to generate the documentation, you need to use special comments. You will need to put a Doxygen comment at the top of your file (a file header), specifying information about the file, as well as comments above each of your functions (function headers), specifying information about each of them. Here is an example Doxygen-style comment (this one is for a function):
/** * @brief Dynamically allocates a new node, initializing it with data. * * @param value The value to store in the node * @param label The label to associate with the node * @return A pointer to the newly made node */
Okay, what do we see here? A few things:
Doxygen comments begin with an extra * symbol, so you get /** instead of the normal /*.
The asterisks at the beginning of each line are optional. They just look nice.
Each line contains what's called a tag, followed by information.
Tags start with either a @ or a \ (either one works).
Tags denote some kind of information that would be useful to have in the documentation of your code.
The name of the tag determines how it is used in the documentation.
The information after the tag is displayed in the documentation.
Doxygen comments end like normal comments.
The most notable tags you will use are:
@file - Used as the name of the file the code is in.
@author - Used to credit the author of the file.
@date - Used to record the date of authorship of the file, or, in the case of the CS courses I mentioned earlier, the due date of the assignment.
@par - Used to display any information that does not have its own tag. If you use this tag and place a field name, and the field value on the following line, it will be displayed in the same way the author and date tags are.
@brief - Used to give a short description to a file or a function.
@param - Used to give the parameters of a function. The first word after the tag is the name of the parameter, and everything after that is the description of the parameter.
@return - Used to give the return value of a function.
There are other tags, although they are not as frequent, depending on the type of programming you do. Refer to the official manual for more information.
Doxyfiles
When you run Doxygen, it looks for a configuration file called a doxyfile. The default name it will look for is Doxyfile, with no file extension. A doxyfile is a text file, much in the same way that a C source code file is a text file. If you look at the default doxyfile (generated with the command doxygen -g), you can see the structure of a doxyfile, with options, followed by =, followed by values.
Notable options include:
PROJECT_NAME - The title of your documentation. Be sure to change this.
GENERATE_LATEX and GENERATE_HTML - Select what kind of documentation files to generate.
There are many, many more options available, although these are the most critical. Again, refer to the official manual for more information.
Using Someone Else's Doxyfile
If someone such as your professor provides a file named Doxyfile, good news! You don't have to configure one yourself. However, this is very important: make sure you edit the doxyfile to change the PROJECT_NAME to something suitable.
Other than that, using someone else's doxyfile is as simple as putting it the directory of your project and running the command doxygen. That's it. You should see a new folder or two, depending on what type of documentation you're generating. Inside these folders is your fresh, hot-off-the-press documentation. Have fun!
Turning LaTeX into PDF
You may have generated LaTeX documentation, but to view that, you'll need a program that can render LaTeX markup. Instead, you can generate a PDF document that more people's computers will be able to display easily.
Inside of the latex folder that was generated, you'll see a makefile, intended for the program make. Surprise! I have a primer on make and makefiles here. But for this usage, you should only need to run the commands cd latex to get into the latex directory and make to generate a PDF of your documentation. You will need a command called pdflatex for the makefile to work properly, which can be gotten as part of a package set called texlive.
After you run make, you'll see a file called refman.pdf is generated. That file is a PDF document that contains the full documentation for your project. Congratulations! Doesn't it look pretty?
Conclusion
You should now have some introductory knowledge of how to use Doxygen effectively. If you feel there is anything this document did not cover that you think it should, or anything you're left wondering after reading, or anything I can improve, please let me know! My goal is for this document to be easily read and comprehended, and to give you all the knowledge you need to be a more effective developer.
Created: 2022-09-19 Last Updated: 2022-11-09 © 2022 Ian Elsbree
ããã°ã©ãã®ããã®doxygen
doxygenãšã¯ããœãŒã¹ã³ãŒãå ã«å«ãŸããèŠå®ã®åœ¢åŒã®ã³ã¡ã³ã(doxygenã³ã¡ã³ã)ãããããã¥ã¡ã³ããèªåçæããŠãããã·ã¹ãã ã§ããã doxygenã§ã¯åçš®ããã°ã©ã èšèªããµããŒããããŠããããããã§ã¯ïŒ£ããã°ã©ã äžå¿ã«è©±ããé²ããŠããã
èªåã¯æ®æ®µïŒ£ã§ããã°ã©ã ãæžããŠããããdoxygenã³ã¡ã³ãã«ã€ããŠåå¿é²çãªãã®ã欲ãããšæããŸãšããŠã¿ãã ãããã£ãçµç·¯ãããã®ã§ããã®ãŸãšãã¯å°ãæ å ±ã«çå¯ãããããšæãã
ãã®ãŸãšãã§ã¯ doxygen 1.8.9.1 ãããŒã¹ã«ããŠãããèªåã®ç°å¢(Mac OS X)ã§ã®è¡šç€ºããµã³ãã«ãšããŠæããŠããã åºåçµæã®æèšãå€ãã£ããããã ããããä»ã®ç°å¢ã§ãããã»ã©å€§ããªéãã¯ãªãã ããã
doxygenã¯æ°å€ãã®èšå®ãæã€ããèªåã¯ã»ãšãã©ããã©ã«ãã®ãŸãŸã§äœ¿çšããŠããããããã䜿ãã«åœãã£ãŠèª¿æŽããæ¹ãè¯ããã®ãããã ãã®ãããªèšå®ã«é¢ããŠã¯ã[7] ã€ã³ã¹ããŒã«æã«èšå®ãããã®ãšããŠãŸãšããŠãããã
ç®æ¬¡
[1] åãªãããã°ã©ã ãdoxygenã«ããã
[2] doxygenã³ã¡ã³ã
[3] æ¹è¡
[4] ç®æ¡æžããšé£çªãªã¹ã
[5] Markdownèšæ³
[6] doxygenã³ãã³ã
[6-1] ç·åæŠèŠ(ã¡ã€ã³ããŒãž)ãšè«žæ å ±
@mainpage, @page, @section, @subsection, @par
[6-2] ãã¡ã€ã«ããããšå€æŽå±¥æŽ
@file, @brief, @author, @date, @version, @copyright, @par
[6-3] 颿°ããã
@brief, @param, @retval, @return
[6-4] 颿°ã®äºåæ¡ä»¶ãšäºåŸæ¡ä»¶
@pre, @post
[6-5] 颿°ãªã©ã®èªåãªã³ã¯
@sa
[6-6] 泚æãèŠåããã°ãtodo
@remarks, @attension, @warning, @bug, @note, @todo
[7] ã€ã³ã¹ããŒã«æã«èšå®ãããã®
åèURL
æ¬å®¶(è±èª): http://www.doxygen.org/
æ¥æ¬èªç: http://www.doxygen.jp/
æ¥æ¬èªã§éåžžã«å©ããããæ®å¿µãªãã察象ããŒãžã§ã³ãå€ãã
Graphviz: http://graphviz.org/
å³åœ¢æç»ããã±ãŒãžãdoxygenãã䜿ãã
[1] åãªãããã°ã©ã ãdoxygenã«ããã
doxygenã¯ããœãŒã¹ããã°ã©ã ã«å«ãŸããŠããç¹æ®ãªåœ¢åŒã®ã³ã¡ã³ã(doxygenã³ã¡ã³ã)ãããšã«ãããã¥ã¡ã³ããèªåçæããŠãããã·ã¹ãã ã ããdoxygen圢åŒã®ã³ã¡ã³ããå ¥ã£ãŠãªãæ®éã®ïŒ£ã®ããã°ã©ã ãå ¥åããŠãããããªãã®åºåãããŠãããã
以äžã®ãããªãã¡ã€ã«(hello.c)ã®å é ã«/** @file ã **/ã®è¡ã ããå ¥ããŠã¿ãŠdoxygenã«ãããŠã¿ãã
/** @file hello.c **/ #include <stdio.h> const char greeting[] = "Hello, World"; int main(int argc, char **argv) { puts(greeting); return 0; }
å é ããŒãžã§ããã¡ã€ã«ããšããã¿ããã¯ãªãã¯ãããšä»¥äžã®ãããªè¡šç€ºã«ãªãããhello.cãããªã³ã¯ã«ãªã£ãŠããã
åºåäŸïŒ
ãhello.cããã¯ãªãã¯ãããšä»¥äžã®ãããªè¡šç€ºã«ãªãã
åºåäŸïŒ
ãã®ããã«ãincludeãã¡ã€ã«ã®äŸåé¢ä¿ããå®çŸ©ãããŠãã颿°ã倿°ãªã©ã®äžèЧãã¡ãããšè§£æããŠåºåããŠãããã(ããã«ã¯ç¡ããããã¯ããæ§é äœãåæåãããã°è§£æããŠåºåããŠãããã)
æ®å¿µãªããããã以äžã®æ å ±ã¯åºãŠããªãããããã§ããã ã®ïŒ£ããã°ã©ã ãããããã ãã®æ å ±ãæœåºããŠãããã
ãã®åºåã«èä»ãããŠããã®ãdoxygenã³ã¡ã³ããšãªãã
ã¡ãªã¿ã«ãããã°ã©ã ã§ã¯ãããã§ç€ºãã/** @file ã **/ã®è¡ã¯å¿ é ã§ããããŸãããã¡ã€ã«åãå¿ ãäžèŽããŠãªããã°ãªããªãããããééããšäœãæçšãªåºåãæãããªãã
âç®æ¬¡ãžæ»ãã
[2] doxygenã³ã¡ã³ã
doxygenã³ã¡ã³ãã¯ä»¥äžã®åã€ã®åœ¢åŒãããã
â /** ïœ */ â¡ /*! ïœ */ ⢠/// ïœ â£ //! ïœ
ååçã«ããããã¯æžãæ¹ãç°ãªãã ãã§å€§ããªéãã¯ãªã(埮åŠãªéãã«ã€ããŠã¯ãããšã§è§Šãã)ã äŸãã°â ã®åœ¢åŒãªãã°ã/**ã®éšåãããŒãšãªãããã§ã以äžã®ããã«è²ã ãªèšè¿°ã®ä»æ¹ãã§ããã
/** ãããã¡ã®èª¬æ */ unsigned char Buf[1024];
/** ãããã¡ã®èª¬æ **/ /*** ããã¯doxygenã³ã¡ã³ãã§ã¯ãªãã§ã®ç¡èŠããã ***/ unsigned char Buf[1024];
/** * ãããã¡ã®èª¬æ */ unsigned char Buf[1024];
/** ãããã¡ã®èª¬æ */ unsigned char Buf[1024];
/*************************************//** * ãããã¡ã®èª¬æ ******************************************/ unsigned char Buf[1024];
æåŸã®äŸã¯ãéåžžã®ã³ã¡ã³ã/*****...*/ã®åŸãããâ ã®ã³ã¡ã³ããå§ãŸã£ãŠãã圢åŒã ã ãããã¯ããã¹ãŠåãåºåã«ãªãã
åºåäŸïŒ
ããã«ãâ ãâ£ã®ã³ã¡ã³ãã®å·Šç«¯ã«<ãä»ããããšã«ãããè¡ã®åŸãã«doxygenã³ã¡ã³ãã眮ãããšãã§ããã
â ' /**< ïœ */ â¡' /*!< ïœ */ â¢' ///< ïœ â£' //!< ïœ
å ã®äŸã䜿ã£ãŠç€ºããšã以äžã®ããã«ãªãããããåããã®ãåºåãããã
unsigned char Buf[1024]; /**< ãããã¡ã®èª¬æ */
ã¡ãªã¿ã«ãâ ãšâ¡(/*ã§å§ãŸã)ãâ¢ãšâ£(//ã§å§ãŸã)ã¯ããäºãã«åãåºåãšãªãããâ ãâ¡ç³»ãšâ¢ãâ£ç³»ã®åºåã¯åŸ®åŠã«ç°ãªãããã ã
unsigned char Buf1[1024]; /**< â ãâ¡ç³»ãããã¡ã®èª¬æ */ unsigned char Buf2[1024]; ///< â¢ãâ£ç³»ãããã¡ã®èª¬æ
åºåäŸïŒ
â ãâ¡ç³»ã¯å€æ°è©³è§£ãå¥ã«èšããããŠè¡šç€ºãããããã§ãããã倿°ãæ¬ã®ãBuf1ãããªã³ã¯ã«ãªã£ãŠãããã倿°è©³è§£ãæ¬ã«é£ã¶ããã«ãªã£ãŠããã â¢ãâ£ç³»ã¯å€æ°æ¬ã«ãŸãšãŸã£ãŠåºåãããã ãããã¯ã奜ã¿ã«å¿ããŠäœ¿ãåããã°è¯ãã ããã
ã¡ãªã¿ã«â 'ïœâ£'ã®åœ¢åŒã¯ãã©ã¡ãããšãããšæ§é äœã®ã¡ã³ã説æããåæåã®é ç®èª¬æã§äœ¿ãã®ãæ¬æ¥ã®çšéãªã®ã ããã
/** è§£æã®ç¶æ å€ **/ enum CommandSta { IDLE, /**< ã¢ã€ãã« **/ ACT, /**< 皌å **/ SLEEP, /**< åæ¢äž **/ };
åºåäŸïŒ
/** è§£æã®ç¶æ å€ **/ã¯â 圢åŒã®doxygenã³ã¡ã³ãã§ããã®ã§ããåæåè©³è§£ãæ¬ã«åºåãããŠããã ããã/*** è§£æã®ç¶æ å€ ***/ãªã©ãšããŠã¯åºåãããªããªãã
âç®æ¬¡ãžæ»ã
[3] æ¹è¡
doxygenã³ã¡ã³ãå ã®æç« ã¯ãå®éã®æ¹è¡äœçœ®ãšã¯ç¡é¢ä¿ã«ãè©°ããã ãè©°ããŠè¡šç€ºãããã æç€ºçã«æ¹è¡ãããå Žåã¯ãäœãç¡ã空ã®ã³ã¡ã³ãè¡ãæãå¿ èŠãããã 以äžã«äŸã瀺ãã
/** * åçŽãªæ¹è¡ã¯ * è©°ããã ãè©°ããŠè¡šç€ºãããã * æç€ºçã«æ¹è¡ãããå Žåã¯ã以äžã®ããã« * * 空ã®ã³ã¡ã³ãè¡ãæãã */ void dummy(void) { /* äœãããªã */ }
åºåäŸïŒ
ã³ã¡ã³ããããã¯å ã®åè¡ã*ã§å§ããŠããã®ã§ããã®æååã ãã®è¡(ã¹ããŒã¹ãã¿ãã¯ç¡èŠãããããã )ãããã°ããããæ®µèœã®åºåããšãªããæ¹è¡ãããŠåºåãããã以éããã®ãããªç©ºã®ã³ã¡ã³ãè¡ã®ããšããåã«ã空è¡ããšåŒã¶ã
doxygenã¯æçµçã«HTMLã«ç¿»èš³ããããããHTMLã§ããªãã¿ã®<br>ã¿ã°ã§ãæ¹è¡ã§ããããŸããdoxygenã³ãã³ãèªäœã«ãæ¹è¡ããæå³ãã\nã@nãšãã£ãã³ãã³ããããã®ã§ãããããå ¥åããŠãæ¹è¡ã§ããã
以äžã®äŸã§ã¯ããã®ä»ã«HTMLã¿ã°ã§ãã<b>ã¿ã°ã䜿çšããŠããã
/** * <b>ã¿ã€ãã«</b><br> * ã»æåã®èª¬æ<br> * ã»ãçªç®ã®èª¬æ\n * ã»äžçªç®ã®èª¬æ@n * ã»åçªç®ã®èª¬æ */ void dummy(void) { /* äœãããªã */ }
åºåäŸïŒ
ãªããäžã®ãããªã±ãŒã¹ã§ã¯ã[4] ç®æ¡æžããšé£çªãªã¹ããã§èª¬æãããç®æ¡æžããã䜿ã£ãæ¹ãããã£ãšã¹ããŒãã«èšè¿°ã§ããã
/** * ã¿ã€ãã« * * - æåã®èª¬æ * - ãçªç®ã®èª¬æ * - äžçªç®ã®èª¬æ * - åçªç®ã®èª¬æ */ void dummy(void) { /* äœãããªã */ }
åºåäŸïŒ
ãšããã§ãMacOS Xã§ããã¯ã¹ã©ãã·ã¥ãããå ¥åããæã«ã¯æ³šæãå¿ èŠã§ããã Mac OS Xã§ã¯ãåè§ã®åèšå·ãï¿¥(0xa5)ããšåè§ã®ããã¯ã¹ã©ãã·ã¥ã(0x5c)ããæç¢ºã«åºå¥ãããŠãããããŒããŒãã®ãï¿¥ãããŒãæŒããæã«ã©ã¡ããå ¥åããããã¯ãã·ã¹ãã ç°å¢èšå®ãã«äŸåããã
詊ãã«ãï¿¥ãããŒãæŒããæã«ãï¿¥ãã衚瀺ãããããããã¯åèšå·ãï¿¥(0xa5)ãã§ããããã¯ã¹ã©ãã·ã¥ã(0x5c)ãã§ã¯ãªããã ãããï¿¥ïœããšå ¥åããŠãæ¹è¡ãããªãããã®å Žåã¯ãOptionããŒãæŒããªãããï¿¥ãããŒãæŒããšè¯ãã ããã©ã«ãã§ããã¯ã¹ã©ãã·ã¥ãå ¥åããããšæã£ãããã·ã¹ãã ç°å¢èšå®ãã§ã®å€æŽãå¿ èŠã ã
æ¥æ¬èªçWindowsã§ã¯ããã®ç¹ãããŸãé ãããŠããããï¿¥ãããŒãæŒããæã¯ã(0x5c)ããå ¥åããããããã«ãæ¥æ¬èªãã©ã³ãã®å Žåã¯ããã¯ã¹ã©ãã·ã¥ã(0x5c)ãããï¿¥ããšè¡šç€ºãããã ãããï¿¥ïœããšè¡šç€ºãããŠããŠããã¡ãããšæ¹è¡ãããã®ã ã
ã¡ãªã¿ã«ãäžèšã®äŸã®ããã«ãã³ã¡ã³ãã®äžã«ããã<b>ã<br>ãªã©ã®HTMLã¿ã°ãå ¥ã£ãŠããã³ãŒããèŠãããšãããããããã¯äœã ããã ã²ã©ããã®ã«ãªããšãåå·ççã«åè¡ãåè¡ã«<br>ãä»ããŠããããã食ãã®ããã®HTMLã¿ã°ãå ¥ã£ãŠãããããã
ãã®HTMLã¿ã°ã¯doxygenã®æŽåœ¢ããã°ã©ã ãéããªããšãŸãšãã«èŠãããªãããã§ãæ®éã«ãœãŒã¹ã³ãŒããªãŒãã£ã³ã°ããŠããåã«ã¯ç®éãã§èŠèŠããã°ãããªã®ã«ã doxygenã³ã¡ã³ãã«åãã®ãè¯ãããæ®æ®µã¯æ®éã«èªããŠãdoxygenã«éãã°ããã綺éºã«èªããã³ã¡ã³ãã®æžãæ¹ãããã®ãæ¬çã ãšæãã®ã ãã
äœãéäžããå šç¶doxygenã®èª¬æã«ãªã£ãŠãŸãããã
âç®æ¬¡ãžæ»ã
[4] ç®æ¡æžããšé£çªãªã¹ã
doxygenã³ã¡ã³ãå ã«ã-ã-#ã§å§ãŸãè¡ãèšè¿°ãããšãç®æ¡æžããé£çªãªã¹ããšããŠåºåãããã
-ãšã¹ããŒã¹ã§ãç®æ¡æžãããšãªããã¿ããã¹ããŒã¹ã§æ®µä»ããããšãããäœãã¬ãã«ã®ç®æ¡æžãã瀺ãããšãã§ããã ãŸãã.ã®ã¿ã®è¡ã¯ããã®ã¬ãã«ã®ç®æ¡æžããçµäºãããã
/** * ã¿ã€ãã« * * - ç®æ¡æžã1 * - ç®æ¡æžã2 * - ç®æ¡æžã2-1 * ãã®è¡ã¯äžã®è¡ã«è©°ããããããã * - ç®æ¡æžã2-1-1 * . * ç®æ¡æžã2-1ã®è¿œå 説æ * - ç®æ¡æžã2-2 * - ç®æ¡æžã3 */ void dummy(void) { /* äœãããªã */ }
åºåäŸïŒ
äžã®äŸã®éãã飿¥ããè¡ã¯è©°ããã ãè©°ããŠåºåãããã®ã§ããããå«ãªå Žåã¯ãåãã¬ãã«ã«ããã(.)ã ãã眮ãããšã«ããããã®åã®ç®æ¡æžããçµããããããšãã§ãã(ç®æ¡æžã2-1-1ã®åŸã®.ã®ã¿ã®ã³ã¡ã³ãè¡ãããã )ã
å é ã-#ã§å§ãããšé£çªãªã¹ãã«ãªãã
/** * ã¿ã€ãã« * * -# é£çªãªã¹ã1 * -# é£çªãªã¹ã2 * -# é£çªãªã¹ã2-1 * -# é£çªãªã¹ã2-2 * - ããã«ç®æ¡æžããå«ããããšãå¯èœã * ãã®ããã«å¥ã®è¡ã«æžããŠãè©°ããããããã * . * . * åãã¬ãã«ã«ããããããããšã§è©²åœã®ã¬ãã«ã匷å¶çã« * çµããããã * -# é£çªãªã¹ã3 * . * -# é£çªãªã¹ã(æ°ãã1) */ void dummy(void) { /* äœãããªã */ }
åºåäŸïŒ
ãé£çªãªã¹ã3ãã®åŸã«.ã ãã®è¡ããããããã§æ¬¡ããã¯æ°ããé£çªãªã¹ããšãªãã
æ®éã«ãœãŒã¹ã³ãŒããªãŒãã£ã³ã°ããŠããå Žåã¯ã-ã¯ãŸã ããã-#ã¯åãªãå€ãªèšå·ã«ããèŠããªããdoxygen 1.8.0ããã¯ãMarkdownãšåãã1.ã2.ãšããé£çªãªã¹ããæ¯ããããã«ãªã£ãã MarkdownãµããŒãã«é¢ããŠã¯æ¬¡ã®é ã§èª¬æããã
âç®æ¬¡ãžæ»ã
[5] Markdownèšæ³
doxygen 1.8.0 ããã¯Markdownèšæ³ããµããŒããããããã«ãªã£ãã
Markdownã®ãããªç®æ¡æžããé£çªãªã¹ããè¡šãæ°Žå¹³ç·ããã®ä»ã®èšè¿°ãã§ããããã«ãªã£ãã 以äžã«äŸã瀺ãã
/** * ### ã¿ã€ãã« * * ãã®é¢æ°ã®æ©èœ * _ _ _ * 1. ã¡ã€ã³æ©èœ * * 説æ1 * * 説æ2 * 2. ãµãæ©èœ * 1. ãµãæ©èœ1 * 2. ãµãæ©èœ2 * * | å·Šè©°ã | äžå€®æã | å³è©°ã | * |:------ |:--------:| ------:| * | 1-1 | 1-2 | 1-3 | * | 2-1 | 2-2 | 2-3 | */ void dummy(void) { /* äœãããªã */ }
åºåäŸïŒ
ã###ãã¯Markdownã®ã¿ã€ãã«æå®(H3ã䜿çš)ãã_ _ _ãã¯æ°Žå¹³ç·ã ã
ãªãªãžãã«ã®Markdownèšæ³ã®ä»ã«ãããã€ãã®æåãªæ¡åŒµæ©èœããµããŒããããŠãããããªã®ã§ãåèãŸã§ã«ä»¥äžã«URLã貌ãä»ããŠããã
Doxygen Markdown support
URL: http://www.stack.nl/~dimitri/doxygen/manual/markdown.html
ãªããæ®å¿µãªãããè¡æ«ã«ã¹ããŒã¹ãäºã€ä»¥äžå ¥ããŠã®æ¹è¡ãã§ã®ãåŒ·å¶æ¹è¡ãã¯ãµããŒããããŠããªãããã ã ãã£ã±ãäºææ§ãšãã«åé¡ãããã®ã ãããã
âç®æ¬¡ãžæ»ã
[6] doxygenã³ãã³ã
doxygenã³ã¡ã³ãã®äžã«ã\ã@ã§å§ãŸãç¹æ®ã³ãã³ããæã¿èŸŒãããšã«ãããè²ã ãªæ å ±ãä»å ããŠåºåããããšãå¯èœãšãªãã ãã以éã¯ããã®ãããªç¹æ®ã³ãã³ãã«ã€ããŠãç®çå¥ã«èª¬æããŠè¡ããã
ãªããããã§ã¯ç¹æ®ã³ãã³ãã@圢åŒã§èšè¿°ããããããã¯åçŽã«èªåã®å¥œã¿ã§ããã äŸãã°ã@briefã¯\briefãšèšè¿°ããŠãè¯ãã®ã§ã奜ã¿ã®æ¹ãéžã¹ã°è¯ãã ããã
âç®æ¬¡ãžæ»ã
[6-1] ç·åæŠèŠ(ã¡ã€ã³ããŒãž)ãšè«žæ å ±
doxygenã§äœã£ãããã¥ã¡ã³ãã§äžçªæåã«è¡šç€ºãããããŒãž(ãç·åæŠèŠããåã¯ãã¡ã€ã³ããŒãžã)ããããããã®ãŸãŸã ãšãããã«ã¯äœã衚瀺ããããã¡ãã£ãšæ Œå¥œæªãã
ãã®ããŒãžã«èŒãããææžã¯doxygenã³ãã³ãã®@mainpageã³ãã³ãã§äœãããšãã§ããã ãŸãã@pageã³ãã³ãã䜿ãã°ãä»ã®ããŒãžãäœãããšãã§ããã 以äžã«ãããã®äŸã瀺ãã
/** * @mainpage ã¡ã€ã³ã¿ã€ãã« * ãããããªèª¬æ * * @section main_sec 倧é ç® * 倧é ç®ã®èª¬æ * * @subsection main_subsec äžé ç® * äžé ç®ã®èª¬æ * * @par å°é ç® * 詳ãã㯠@ref more_info ãåç §ã®ããšã */ /** * @page more_info è£è¶³èª¬æ * è²ã ãªè£è¶³ã®èª¬æã * 倧æ¬ã® @ref main_sec ãåç §ã®ããšã */ /** * @page more_info2 ãããªãè£è¶³èª¬æ * ããã«è²ã ãªè£è¶³ã®èª¬æã */
ãããã®ã³ã¡ã³ãã¯ãåããã¡ã€ã«ã«èšè¿°ããŠãè¯ãããå¥ã ã®ãã¡ã€ã«ã«èšè¿°ããŠãè¯ãã @mainpageã«èšè¿°ããã³ã¡ã³ããæåã®ããŒãž(ãç·åæŠèŠããåã¯ãã¡ã€ã³ããŒãžã)ã«è¡šç€ºãããã
åºåäŸïŒæåã®ããŒãž(ç·åæŠèŠãåã¯ã¡ã€ã³ããŒãž)
äžèšäŸã®ãå°é ç®ãäžã«ããè£è¶³èª¬æã¯ãªã³ã¯ã«ãªã£ãŠãããããã¯@refã³ãã³ãã®çµæã ã
@pageã«èšè¿°ããã³ã¡ã³ããã諞æ å ±ãããŒãžã«è¡šç€ºãããã
åºåäŸïŒ@pageã§äœã£ãããŒãž(諞æ å ±)
ãã®äŸã§ã®è£è¶³èª¬æãšããããªãè£è¶³èª¬æã¯å šãŠãªã³ã¯ã«ãªã£ãŠããã ã¯ãªãã¯ãããšä»¥äžã®ãããªããŒãžã衚瀺ãããã
åºåäŸïŒè£è¶³èª¬æ
åºåäŸïŒãããªãè£è¶³èª¬æ
ãè£è¶³èª¬æãã®ããŒãžã®å€§é ç®ã®éšåã@refã³ãã³ãã§äœã£ããªã³ã¯ã«ãªã£ãŠããã
@sectionã@subsectionã@pageåã³ãã³ãã®å·Šã®main_secãmain_subsecãmore_infoãmore_info2ã¯ãå šãŠ@refã³ãã³ãã§ã®ãªã³ã¯å ã«äœ¿ããã¯ãªãã¯ãããšããããã該åœã®ããŒãžã衚瀺ããã
ãªãã@refã³ãã³ãã§ãªã³ã¯ã匵ãå Žåã¯ãäžèšäŸã®ããã«ãååã®ååŸã«ã¹ããŒã¹ãå¿ èŠã§ãããã¹ããŒã¹ç¡ãã§ååŸã«è©°ããŠæžããŠããŸããšãªã³ã¯ãšããŠèªèãããªããªãã
âç®æ¬¡ãžæ»ã
[6-2] ãã¡ã€ã«ããããšå€æŽå±¥æŽ
ããã°ã©ã ãã¡ã€ã«ã®å é ã«ã¯ããã®ãã¡ã€ã«èªäœã®èª¬æã倿Žå±¥æŽãªã©ãèšè¿°ãããšæãã
ãããã®æ å ±ãèŠæ ãããåºåããŠãããdoxygenã³ãã³ããããã 以äžã«ãã®äŸã瀺ãã
/** * @file RingBuf.c * @brief ãªã³ã°ãããã¡ã©ã€ãã©ãª * * äžè¬çãªãªã³ã°ãããã¡å¶åŸ¡ã®ããã®APIããŸãšããã©ã€ãã©ãªã * * @author mits * @date 2015.01.20 * @version 1.0 * @copyright 2015 Mits Corp. All rights reserved. * * @par 倿Žå±¥æŽ: * - 2015.01.15: mits: æ°èŠäœæ * - 2015.01.20: mits: 以äžã®éã * 1. 空ããããã¡ãµã€ãºã®èšç®æ¹æ³ãããããã£ãã®ã§çŽãã * 2. 颿°åã®ãªãã¡ã¯ã¿ãªã³ã°ãè¡ã£ãã * - Command* â Cm_* * - Driver* â D_* */
ãŸããããã¡ã€ã«ãããŒãžã«ãã¡ã€ã«ã®äžèЧã衚瀺ãããã
åºåäŸïŒ
ãã¡ã€ã«åã®èã«è¡šç€ºãããŠããã¡ãã»ãŒãžã¯@briefã³ãã³ãã§èšè¿°ãããã®ã§ããã ãã®ãã¡ã€ã«å(äŸã§ã¯RingBuf.c)ã¯ãªã³ã¯ã«ãªã£ãŠããã
ãã¡ã€ã«åãã¯ãªãã¯ãããšãdoxygenã³ã¡ã³ãã§æžããæ å ±ã衚瀺ãããã
åºåäŸïŒ
é ç® ã³ãã³ã 説æ ãã¡ã€ã«å @file ãã¡ã€ã«åã瀺ããå¿ é é ç®ã§ããããããç¡ããšïŒ£ããã°ã©ã ã§ã¯ããŸãšãã«ããŒãžãäœã£ãŠãããªãã ãŸããããã§èšè¿°ãããã¡ã€ã«åã¯ãå®éã®ãã¡ã€ã«åãšäžèŽããŠãªããã°ãªããªãã æŠèŠ @brief æ¬ãã¡ã€ã«ã®æŠèŠèª¬æããã¡ã€ã«äžèЧããŒãžã§ã¯ããã®æŠèŠèª¬æã䜿ãããã ãªããäžèšäŸã®ããã«ã@briefã®ããšã«ç©ºè¡ãäžè¡æãã åŸã詳ãã説æãæžãã®ãäžè¬çã ã äœè ãæ¥ä»ããããŒãžã§ã³ãèäœæš© @author, @date, @version, @copyright ãã€ãã®èšè¿°ãã奜ã¿ã§ã©ããã æ®µèœ @par @parã³ãã³ãã¯ãå¥ã«å€æŽå±¥æŽçšã®ã³ãã³ãã§ã¯ãªããããã®ããã«ãŸãšãŸã£ãæç« ãæžãããã«éå®ããã®ã§äœ¿ã£ãŠããã ãã®äŸã§ç€ºããããã«ãè€æ°ã®æ å ±ãåæããã«ã¯ãç®æ¡æžããããé£çªãªã¹ãããéåžžã«éå®ãããããããèŠèŠãã<br>ãä¹±çºããªããŠãæžãã
âç®æ¬¡ãžæ»ã
[6-3] 颿°ããã
颿°å®çŸ©ã®åã«ããã®é¢æ°ã®åŠçå 容ãåŒæ°ãæ»ãå€ãªã©ã®èª¬æãæžãããããããããããèŠæ ãããåºåããŠãããdoxygenã³ãã³ãã«ã€ããŠèª¬æããã 以äžã«äŸã瀺ãã
/** * @brief æŠèŠèª¬æ * * ãã®ç°¡åãªèª¬æã * * @param[out] op åºåãã©ã¡ãŒã¿ * @param[in] ip å ¥åãã©ã¡ãŒã¿ * @param[in,out] iop å ¥åºåãã©ã¡ãŒã¿ * @retval true åŠçæåã * @retval false åŠç倱æã */ bool dummy(char *op, int ip, int *iop) { /* ç¥ */ }
åºåäŸïŒ
颿°ã®æ»ãå€ã瀺ãdoxygenã³ãã³ããšããŠã¯ãä»ã«@returnãããã
/** ã ç¥ ã * @return 0ïœMAX_BUFã®ç¯å²å€ãè¿ãã ã ç¥ ã */
åºåäŸïŒ
é ç® ã³ãã³ã èª¬æ æŠèŠ @brief ãã¡ã€ã«ãããã§ã䜿ã£ã@briefã³ãã³ãã ã颿°äžèЧã«ã¯ãããã§èšè¿°ããæç« ãåºåãããã ãã¡ã€ã«ãããåæ§ã«ã空è¡ãäžè¡æãã åŸã説æãæžãã®ãäžè¬çã ã åŒæ° @param 颿°ã®åŒæ°ã¯ããã®ã³ãã³ãã§æå®ããã ãã®äŸã®ããã«ãååŒæ°ã«ã¯åºåã»å ¥åã»å ¥åºåã®æ å ±ãä»å ããããšãå¯èœã§ãã(ä»ããªããŠãè¯ã)ã æ»ãå€ @retval, @return æ»ãå€ã瀺ãããã®ã³ãã³ããšããŠã¯äºçš®é¡ããã åæåãããŒã«å€ãªã©ãããã€ãã®é ç®ã«åé¡ããŠèª¬æãããæã¯@retvalãã²ãšãŸãšãŸãã®æç« ã§èª¬æãããå Žåã¯@returnã䜿ãã
説æãããããšãããããããå Žåã¯ãå ã«ç€ºãã@parãªã©ã䜿ãã®ãè¯ãã ããã ã奜ã¿ã§ãå ã«ç€ºãã@authorã@dateãªã©ã䜿ã£ãŠãè¯ããããŸãééããªãã¡ã³ããã³ã¹ãããªããªããšæããâŠ
âç®æ¬¡ãžæ»ã
[6-4] 颿°ã®äºåæ¡ä»¶ãšäºåŸæ¡ä»¶
颿°ã®äžã§assert()ã䜿ã£ãå Žåããã®è¡šæå 容ã説æããã®ã«é©ããdoxygenã³ãã³ããããã @preã@postãããã§ã以äžã«äŸã瀺ãã
/** * @brief ç°¡æã¡ã¢ãå²ãåœãŠ * @param sz å²ãåœãŠãµã€ãº * @return å²ãåœãŠãã¡ã¢ãª * @pre szã¯1ãMAXBUFã®ç¯å²å ã«ããããšã * @post ã¡ã¢ãªå²ãåœãŠã¯åžžã«æåããã */ void *alloc(int sz) { void *p; assert(0 < sz && sz <= MAXBUF); /* ã */ assert(p != NULL); return p; }
åºåäŸïŒ
ã¡ãªã¿ã«ããããã®ã³ãã³ãã¯ã³ãŒãã®äžã«çŽæ¥æžããŠãæ§ããªããåºåçµæã¯ãå ã®äŸãšåãã§ã颿°èª¬æãšããŠãã¹ãŠãŸãšããŠè¡šç€ºããŠãããã
void *alloc(int sz) { void *p; /** @pre szã¯1ãMAXBUFã®ç¯å²å ã«ããããšã**/ assert(0 < sz && sz <= MAXBUF); /* ã */ /** @post ã¡ã¢ãªå²ãåœãŠã¯åžžã«æåããã**/ assert(p != NULL); return p; }
âç®æ¬¡ãžæ»ã
[6-5] 颿°ãªã©ã®èªåãªã³ã¯
doxygenã³ã¡ã³ãå ã§ã颿°åãªã©ã«ãªã³ã¯ãä»ããããšãã§ããã 以äžã®ããã«ã颿°åã«ç¶ããŠ()ãèšè¿°ããååŸã®æç« ãšã¹ããŒã¹ã§éã空ããŠããã
/** * @mainpage * ãªã³ã°ãããã¡ã©ã€ãã©ãª * * @section main_api APIäžèЧ * | APIå | æ©èœ | * |:-------------- |:-------------------------------- | * | Rbuf_ini() | ãªã³ã°ãããã¡ã®åæå | * | Rbuf_putChr() | ãªã³ã°ãããã¡ãž1æååºå | * | Rbuf_getChr() | ãªã³ã°ãããã¡ããã®1æåå ¥å | * | Rbuf_isEmpty() | ãªã³ã°ãããã¡ã空ãã©ããã®å€æ | * * @section main_usage äœ¿çšæ¹æ³ * - ããããã Rbuf_ctl åã®å€æ°ãå®çŸ©ããŠããã * - ãã®å€æ°ã§ Rbuf_ini() ãåŒã³åºãã */
åºåäŸïŒ
颿°ãããã§@briefã§èšè¿°ããã³ã¡ã³ãããã€ã³ãããæã«è¡šç€ºããããã¯ãªãã¯ãããšè©²åœã®é¢æ°å®çŸ©ã®ããŒãžã衚瀺ãããã ãŸãããã®äŸã®ãäœ¿çšæ¹æ³ãæ¬ã®Rbuf_ctlã¯æ§é äœã¿ã°åã§ãããããã®ååŸã«ãã¹ããŒã¹ã§éã空ããŠããã®ã§ãèªåãªã³ã¯ãä»ããŠããã
ãã®ããã«ã颿°å以å€ã«ãããã€ãèªåãªã³ã¯ããããã®ããããåèãŸã§ã«ã以äžã«èªåãªã³ã¯ã®èª¬æããŒãžã貌ã£ãŠããã
Automatic link generation
URL: http://www.stack.nl/~dimitri/doxygen/manual/autolink.html
åœç¶ã®ããšãªããããªã³ã¯å ã®é¢æ°ã«doxygenã³ã¡ã³ããä»ããŠãªããšèªåãªã³ã¯ãããªãã
ãªãã颿°åç §ãšããŠã¯ãåç §ãã»ã¯ã·ã§ã³å ã«æžãæµåãããã ããããã®ãããªå Žåã¯@saã³ãã³ãã䜿çšã§ããã
/** * @brief äžäººããäœãã§ããªã颿° * @sa mama() ãš papa() */ void baby(void) { /* ... */ }
åºåäŸïŒ
âç®æ¬¡ãžæ»ã
[6-6] 泚æãèŠåããã°ãtodo
äœããã®æ³šæãåèµ·ããããã«ãdoxygenã³ã¡ã³ãã®äžã«ä»¥äžã®å çš®é¡ã®èšè¿°ãå¯èœã§ããã ç¶æ³ã«å¿ããŠäœ¿ãåããã°è¯ãã ããã
/** * @brief å¶åŸ¡æ§é äœ * * éåžžã«éèŠãªæ§é äœ * * @remarks åãªãæ å ±ãæžããããšãã * @attention 泚æãåèµ·ããããšãã * @warning äœããã®èŠåãããŠãããããšãã * @bug ãã°ãååšãããšãã * (å¥ããŒãžã§äžèЧããªã¹ãåãããã) * * @note äœããã®ã¡ã¢æžãã * @todo ããã¹ãããšãæžããŠããã * (ãããå¥ããŒãžã§äžèЧããªã¹ãåãããã) */ typedef struct Control { int member1; ///< æåã®ã¡ã³ã int member2; ///< 次ã®ã¡ã³ã int member3; ///< äžçªç®ã®ã¡ã³ã } Control;
åºåäŸïŒ
@bugãš@todoã«é¢ããŠã¯ã@pageã³ãã³ãã§ã䜿ãããã諞æ å ±ãããŒãžå ã«äžèЧããªã¹ãåããã(äžã®äŸã§ãããã°ããšãtodoãã«ã¯ã該åœããŒãžãžã®ãªã³ã¯ãä»ããŠãã)ã ã諞æ å ±ãããŒãžã®todoäžèЧããã°äžèЧã¯ããããããªã³ã¯ã«ãªã£ãŠãããã¯ãªãã¯ãããšãããã該åœã®ããŒãžã衚瀺ãããã
åãªã³ã¯ãã¯ãªãã¯ããæã«è¡šç€ºãããç»é¢ã ãããããdoxygenã³ã¡ã³ãã§æžãããã®ãåºåãããã
åºåäŸïŒ
âç®æ¬¡ãžæ»ã
[7] ã€ã³ã¹ããŒã«æã«èšå®ãããã®
doxygenèšå®ãã¡ã€ã«ã®Doxyfileå ã®èšå®ã§ãå¿ é ãªãã®ã調æŽãå¿ èŠã ã£ããã®ãªã©ãæããŠããã
Project
PROJECT_NAME
ãããžã§ã¯ãã®åç§°ãåºåããã¥ã¡ã³ãã®ããŒãžã®ã¿ã€ãã«ãšããŠäœ¿ããããããã©ã«ãã¯My Projectãªã®ã§ã奜ã¿ã®åç§°ã«å€ããŠãããæ¹ãè¯ãã ããã
OUTPUT_DIRECTORY
ãã¡ã€ã«ã®åºåå ãé©åœãªå Žæãèšå®ããŠããã
OUTPUT_LANGUAGE
æ¥æ¬èªã®ããã¥ã¡ã³ãã§åºåããŠæ¬²ããã®ã§JapaneaseãšããŠããã
TAB_SIZE
ãœãŒã¹ã³ãŒãã®ã¿ãå¹ ãäœæåãšããŠããããdoxygenã«æããã ããã©ã«ãã¯4ã§ã1ïœ16ã®ç¯å²ã§æå®ã§ãããèªåã¯ããã°ã©ã ã4ã¿ãã§äœ¿çšããŠããã®ã§ããã©ã«ãã®ãŸãŸã ã
OPTIMIZE_OUTPUT_FOR_C
ããã©ã«ãã¯ç¡å¹(NO)ã ããæå¹(YES)ã«ãããšCããã°ã©ã ã«é©ããæé©åãããŠãããã ååçã«èªåã¯Cã§ãã䜿ããªãã®ã§æå¹(YES)ã«ããŠããã
MARKDOWN_SUPPORT
doxygen ver.1.8.0ããã¯ã³ã¡ã³ãå ã§ã®Markdownèšæ³ããµããŒããããŠããã ãã®èšå®ã§ãdoxygenã§Markdownèšæ³ã䜿ããã©ãããéžæã§ããã ããã©ã«ãã§æå¹(YES)ãªã®ã§ãMarkdownèšæ³ããã£ãšãããå Žåã¯ç¡å¹(NO)ã«ããã°è¯ãã
Build
EXTRACT_STATIC
staticå®çŸ©ããã颿°ã倿°ãããã¥ã¡ã³ãã«åºåãããã©ãããæå®ããã ããã©ã«ãã®ãŸãŸã ãšåºåãããªã(NO)ãããèªåã¯YESã«ããŠããã
EXTRACT_PRIVATE
ïŒïŒã®å Žåprivateã¡ã³ããããã¥ã¡ã³ãã«åºåãããã©ãããæ¬èšå®ã§éžæããã ããã©ã«ãã®ãŸãŸã ãšåºåãããªã(NO)ããããããå«ãªãã°YESã«ããã°è¯ãã ããã°ã©ãã«ãšã£ãŠã¯ã©ãã§ãè¯ãããšã ãã
GENERATE_TODOLIST
@todoã³ãã³ãã®ãªã¹ããå¥ããŒãžã«äœããã©ãããæå®ãããããã©ã«ãã§æå¹(YES)ã§ããã ç¹ã«å¿ èŠãªãå Žåã¯ç¡å¹(NO)ã«ããã
GENERATE_BUGLIST
@bugã³ãã³ãã®ãªã¹ããå¥ããŒãžã«äœããã©ãããæå®ãããããã©ã«ãã§æå¹(YES)ã§ããã ç¹ã«å¿ èŠãªãå Žåã¯ç¡å¹(NO)ã«ããã
Input
INPUT_ENCODING
å ¥åããã°ã©ã ã®æåãšã³ã³ãŒãã£ã³ã°ã ããã©ã«ããUTF-8ã§ãããå€ããå¿ èŠã¯ãªããšæãããæãããå€ãããã°ã©ã (SHIFT_JISãEUC-JPãã¡ã€ã«)ãªã©ããã®ãŸãŸèªã¿èŸŒãŸããå Žåã«ã¯å€ããå¿ èŠãããã
RECURSIVE
å ¥åããã°ã©ã ããµããã£ã¬ã¯ããªãããåã蟌ãå Žåã¯æå¹(YES)ãšããã ããã©ã«ãã¯ç¡å¹(NO)ãªã®ã§ãããã°ã©ã ã³ãŒãããµããã£ã¬ã¯ããªã«åããŠããå Žåã¯æå¹(YES)ã«ããå¿ èŠããã
USE_MDFILE_AS_MAINPAGE
ãã®èšå®ã§ç·åæŠèŠ(ã¡ã€ã³ããŒãž)ãäœãããã«ä»»æã®Markdownãã¡ã€ã«ãæå®ã§ããããã ã GitHubã§çšæããReadMe.mdãããã®ãŸãŸäœ¿ãããšãã§ããã 颿°åã®èªåãªã³ã¯ããã£ãŠãããããã ãã埮åŠã«Markdownã®è§£éãç°ãªãããã§ã䜿ããªãã°åºåçµæã確èªããŠããã®æ¹ãè¯ãã
HTML
GENERATE_TREEVIEW
æå¹(YES)ã«ãããšããµã€ãããã«ã«ããªãŒç¶ã®ç®æ¬¡ãä»ããŠããããè¯ãã£ãããã©ããã
Dot
HAVE_DOT
å³åœ¢æç»ã§Graphvizã®dotã³ãã³ãã䜿ãå Žåã¯æå¹(YES)ãšããã
DOT_PATH
å³åœ¢æç»çšã®Graphvizã®dotã³ãã³ãã®ãããã¹ãèšå®ããã ãã©ã³ã¯ã«ããŠããã°åæã«ã³ãã³ããã¹ããæ¢ããŠããããšããããšã ã£ãã®ã«ãMac OS Xã§ã¯èŠã€ããŠãããªãã£ãããªãïŒ ãããããªãã®ã§ãdotã®ã€ã³ã¹ããŒã«ãããŠãã/usr/local/binãèšå®ããŠããå¿ èŠããã£ãã
âç®æ¬¡ãžæ»ã
Doxygen Install
Doxygen Install for Project
íì¬ íë¡ì íž ë¬žìíìì ì§íì€ì ëë€.
ìŽë¥Œ ìíŽì ê°ëµíê² ìžìœë© ë° êž°í ì€ì 곌 êŽë šíì¬ ë©ëªšë¥Œ ìíŽ í¬ì€í ì íììµëë€.
êžëŽì©ì ë°ë¡ ìì±í ê¹ íë€ê° ìŽì§íŒ ìŽë¯žì§ë Dropboxë§í¬ê° 깚ì§ë©Ž, ëìŽë Dropbox.html ë§í¬ë¥Œ 걞ìŽëëë¡ íê² ìµëë€.
** ì°žê³ ë¡ ì€ì¹ë ìê³ , ì¬ì©ë°©ë²ì êŽíŽì ë§ ìì±ëìŽìì. - ì 목ì....Installìžë°..ë§ìŽì£ - Dropbox posting Link

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch ⢠No registration required ⢠HD streaming
Doxygen
Install
DoxyGen Install Link
Using Doxygen Reference
ìµê·Œ Doxygen ë²ì ì UIì ì ì¬í slide ì ëë€. ì 첎ì ìž ì€ëª ì ìêž°ìíŽì ìëì ë§í¬ë¥Œ ì°žì¡°íì멎 ë©ëë€. link1
ê·žëŠ¬ê³ link2, link3, link4, link5 ëëšžì§ ë§í¬ë€ì ì°žì¡°íì멎 êžë°© ì¬ì©í ì ììµëë€.
ì¬ì©ë°©ë²ì ëíŽìë ìê°ë ë posting! ì ë€ì íëë¡(?) íŽë³Žëë¡ íê² ìµëë€! ë¬Œë¡ ë°ìê³ ê·ì°®ìŒë©Ž ..ì¬êž°ì stop...
ê·žëŠ¬ê³ íêžë¡ 죌ìì ë¬ ê²œì°, Ʞ볞 ì€ì ëë¡ ì¶ë ¥í ê²œì° ëì§ ììŒë, ìë êŒ íêžê¹šì§íŽê²°ë°©ë²ì ì°žì¡°íìêž° ë°ëëë€. !
Reference
íêžê¹šì§ 묞ì íŽê²°ë°©ë² Link
by vbflash
Fixed Best Tips for documenting code using doxygen? #dev #it #asnwer
Fixed Best Tips for documenting code using doxygen? #dev #it #asnwer
Best Tips for documenting code using doxygen?
My team is starting to document our C code using doxygen, paying particular attention to our public API headers. There appears to be a lot of flexibility and different special commands in doxygen, which is great, but itâs not clear whatâs a good thing and whatâs a bad thing without trial and error.
What are your favourite ways to mark up your code,âŠ
View On WordPress