在Doxygen注释中,我们经常需要用空格加上符号来描述一种结构图,但是因为Doxygen默认忽略空格和换行,因此导致输出的结果不是我们想要的。假定我们想输出如下的注释:
[cpp]
/**
* JOIN (exists (select 1 from x3 where x1.id3 = x3.id3)
* / \
* r1 x1
*/
因为Doxygen忽略空格和换行,因此输出到html以后,就变成了下面的样子:
[cpp]
JOIN(preserve) (exists (select 1 from x3 where x1.id3 = x3.id3) / \ r1 x1
如果需要按原始格式输出,有两种方法:
1. 用html标签
[cpp]
/**
*
* JOIN (exists (select 1 from x3 where x1.id3 = x3.id3)
* / \
* r1 x1
*
*/这样输出就成了
[cpp]
JOIN(preserve) (exists (select 1 from x3 where x1.id3 = x3.id3)
/ \
r1 x12. 用Doxygen的标签verbatim和endverbatim
[cpp]
/**
* @verbatim
* JOIN (exists (select 1 from x3 where x1.id3 = x3.id3)
* / \
* r1 x1
* @endverbatim
*/输出如下
[cpp]
JOIN(preserve) (exists (select 1 from x3 where x1.id3 = x3.id3)
/ \
r1 x1标签和verbatim的区别。
1.是html的标签,verbatim是Doxygen自己的标签。
2.不会影响Doxygen自身的标签,例如标签中有Doxygen标签@ref等,@ref仍然会指向参考。
3. verbatim标签是真正的逐字输出,因此@verbatim和@endverbatim之间的所有Doxygen标签都会失效。