1
我需要從C頭文件中瞭解由doxygen生成的XML文件的一個方面:在一些標籤的文本中使用'@
'後跟一個數字(「@nn
」)。doxygen XML輸出:標記文本中的「@nn」的含義?
我見過這種符號在兩種情況下使用(但可能會有更多)。
在一種情況下,@nn
似乎是匿名元素(如枚舉)名稱的佔位符。例如,像這樣的枚舉聲明。
enum {
int ANONYMOUS_XYZ = 4;
};
產生這樣的XML:
<memberdef kind="enum" id="..." prot="public" static="no">
<name>@5</name>
<enumvalue id="..." prot="public">
<name>ANONYMOUS_XYZ</name>
<initializer>= 4</initializer>
</memberdef>
我明白了什麼是doxygen的在這裏做的,但我想知道爲什麼doxygen的是做什麼的。爲什麼不簡單地省略<名稱>標記?既然它在那裏,@5
是指什麼?如果沒有別的,我需要了解'@
'的這種用法,以確定是否/何時我可以忽略它。
在另一種情況下,像這樣的結構聲明。
typedef struct {
struct {
int abc;
} abcStruct;
} abcTypedef;
.generates(部分)這樣的XML:
<compounddef id="..." kind="struct" prot="public">
<compoundname>abcTypedef</compoundname>
<sectiondef kind="public-attrib">
<memberdef kind="variable" id="..." prot="public" static="no" mutable="no">
<type>struct abcTypedef::@28</type>
<definition>struct abcTypedef::@28 abcTypedef::abcStruct</definition>
<argsstring />
<name>abcStruct</name>
</memberdef>
</sectiondef>
</compounddef>
這裏@nn
顯然指的是一個真實的元素名稱(在這種情況下abcStruct)。我需要知道如何找到這個名字,以便我可以讓程序得到它。
我明白你在說什麼,但它似乎給我帶來了一個不可能的問題。我的程序使用由兩個項目構建生成的XML來識別構建之間的差異。如果一個構建將此特定typedef稱爲「@ 28」,而下一個將其稱爲「@ 29」,那麼我怎麼能說它們代表了相同的元素? –