doxygen主要是对代码中的标记自动生成html/pdf/latex文档。mscgen用来生成时序图,dot用来生成函数调用关系图。如果希望某些文件或函数不要在最终文档圼,不加注释标记就行了。
/*!@file
@brief doxgen usages
@author 谁tmd的搞的
@version 版本了
@date 你啥时候搞的
@note 要有file标记,下面的配置需要安装graphviz和mscgen。
generate a template:
doxgen -g
edit Doxyfile:
FILE_PATTERNS = *.c *h *.java
RECURSIVE = YES
OUTPUT_DIRECTORY = doc
HAVE_DOT
CALL_GRAPH
CALLER_GRAPH
then run:
doxgen
@since 历史修改记录
\msc
a,b;
a=>b [label="data1", URL="\ref A"];
a-xb [label="data2", URL="\ref A", ID="1"];
a=>b [label="data3"];
a<=b [label="ack1, nack2"];
a=>b [label="data2", arcskip="1"];
|||;
a<=b [label="ack3"];
|||;
\endmsc
<OL>
<LI> In some cases, the system may have failed before this signal is sent
</OL>
*/
/*! \mainpage
Class relations expressed via an inline dot graph:
\dot
digraph example {
node [shape=record, fontname=Helvetica, fontsize=10];
b [ label="class B" URL="\ref A"];
c [ label="class C" URL="\ref A"];
b -> c [ arrowhead="open", style="dashed" ];
}
\enddot
Note that the classes in the above graph are clickable (in the HTML output).
*/
/**dango*/
typedef struct ATag
{
TaskId reqTaskId; /*!< task id*/
}A;
/*!这里写这个函数是干什么用的
@param[in] arg1
@param[in] arg2
@param[out] out1
@return 返回值解释一下
@warning 警告: 例如: 参数不能为空啊,内存要外部释放之类的费话
@note 注解 随便你了
@see 相当于是请参考xxoo函数之类的
*/
int function0(int arg1, int arg2, int *out1);
/*!fun 1
*/
int function1(int arg1, int arg2, int *out1);
int function1(int arg1, int arg2, int *out1)
{
return function0(arg1, arg2, out1);
}