大多数文档系统都有特殊的“参见”部分,用于插入指向其他文档片段的链接。虽然 Doxygen 也有一个命令来启动这样一个部分(参见 \sa),但它允许你在文档中的任何地方放置这类链接。对于
文档,会写入页码引用而非链接。此外,文档末尾的索引可用于快速查找成员、类、命名空间或文件的文档。对于 man 页面,不会生成引用信息。
下一节将展示如何为源文件中的各种文档实体生成链接。
网页和邮件地址链接
Doxygen 会自动将文档中找到的任何 URL 和邮件地址替换为链接 (在 HTML 中)。要手动指定链接文本,请使用 HTML 的 'a' 标签
<a href="linkURL">link text</a>
Doxygen 会将其自动翻译成其他输出格式。
类链接
文档中所有对应于已文档化的类且包含至少一个非小写字符的词,都会被自动替换为指向该类文档页面的链接。如果你想阻止某个对应于已文档化的类的词被替换为链接,应在该词前面加上 %。要链接到全小写符号,请使用 \ref。
文件链接
所有包含非最后一个字符的点的词 (.) 都被认为是文件名。如果该词确实是已文档化的输入文件的名称,将自动创建指向该文件文档的链接。
函数链接
当遇到以下模式之一时,会创建函数链接:
-
<函数名>"("<参数列表>")"
-
<函数名>"()"
-
"::"<函数名>
-
(<类名>"::")n<函数名>"("<参数列表>")"
-
(<类名>"::")n<函数名>"("<参数列表>")"<修饰符>
-
(<类名>"::")n<函数名>"()"
-
(<类名>"::")n<函数名>
其中 n>0。
- 注 1
- 函数参数应使用正确的类型指定,例如 'fun(const std::string&,bool)' 或 '()' 以匹配任何原型。
- 注 2
- 需要成员函数修饰符(如 'const' 和 'volatile')来识别目标,例如 'func(int) const' 和 'func(int)' 目标不同的成员函数。
- 注 3
- 为了与 Javadoc 兼容,在上述模式中可以使用 # 代替 ::。
- 注 4
- 在包含成员 foo 的类的文档中,使用 "::foo" 引用全局变量,而 #foo 将链接到该成员。
对于非重载成员,参数列表可以省略。
如果函数被重载但未指定匹配的参数列表(即使用模式 2 或 6),则将创建指向其中一个重载成员文档的链接。
对于成员函数,如果满足以下条件,可以省略类作用域(如模式 4 到 7 中使用的):
- 该模式指向与包含该模式的文档块属于同一类的已文档化成员。
- 与包含该模式的文档块对应的类具有一个基类,该基类包含一个与该模式匹配的已文档化成员。
其他成员链接
所有这些实体都可以按照上一节中描述的方式进行链接。为了清晰起见,在这种情况下建议只使用模式 3 和 7。
- 示例
class Autolink_Test
{
public:
Autolink_Test();
~Autolink_Test();
void member(int);
void member(int,int);
enum EType {
Val1,
Val2
};
protected:
int var;
};
Autolink_Test::Autolink_Test() { }
Autolink_Test::~Autolink_Test() { }
int globVar;
enum GlobEnum {
GVal1,
GVal2
};
#define ABS(x) (((x)>0)?(x):-(x))
typedef Autolink_Test B;
点击 此处 查看 Doxygen 生成的相应 HTML 文档。
类型别名
涉及类、结构体和联合体的类型别名,例如
typedef struct StructName TypeName
为 StructName 创建一个别名,因此当遇到 StructName 本身或 TypeName 时,都会生成指向 StructName 的链接。
- 示例
struct CoordStruct
{
float x;
float y;
};
typedef CoordStruct Coord;
Coord add(Coord c1,Coord c2)
{
}
点击 此处 查看 Doxygen 生成的相应 HTML 文档。
前往 下一节 或返回 索引。