C++ Doxygen和multiple#使用相同的名称定义
这是我用强氧剂做的一个小实验。 假设我有6个文件: h1.h: f1Data.h:C++ Doxygen和multiple#使用相同的名称定义,c++,doxygen,C++,Doxygen,这是我用强氧剂做的一个小实验。 假设我有6个文件: h1.h: f1Data.h: #define val 10 f1.cpp: #include "h1.h" #include "f1Data.h" int A::func1() { return val; } h2.h: f2Data.h #define val 20 f2.cpp #include "h2.h" #include "f2Data.h" int B::func2() { return val; }
#define val 10
f1.cpp:
#include "h1.h"
#include "f1Data.h"
int A::func1()
{
return val;
}
h2.h:
f2Data.h
#define val 20
f2.cpp
#include "h2.h"
#include "f2Data.h"
int B::func2()
{
return val;
}
当我将GENERATE_XML=yes和CALL_GRAPH=yes放入配置文件并运行doxygen时,我在生成的XML文件中看到一个bug。特别是,我看到在A::func1()的引用中,给出了f2Data.h中的#定义值,而不是f1Data.h中的#定义值。只有当两个文件中的宏名称相同[在本例中,val]时,才会发生这种情况
有人能告诉我这是doxygen的错误还是我不正确地使用了doxygen吗?doxygen在处理代码时做了几个假设:
如果不遵守上述两条规则,则强氧的输出可能不正确 谢谢你的回答。它有我的投票权,但我没有必要的声誉!
#define val 20
#include "h2.h"
#include "f2Data.h"
int B::func2()
{
return val;
}