title: doxygen XML output: meaning of "@nn" in tag text?
body: <p>I need to understand an aspect of the XML files generated by doxygen from C headers: the use of '<code>@</code>' followed by a number ("<code>@nn</code>") in the text of some tags.</p>
  
  <p>I've seen this notation used in two cases (but there may be more).</p>
  
  <p>In one case <code>@nn</code> seems to be a placeholder for the name of an anonymous element like an enum. For example, an enum declaration like this.</p>
  
  <pre><code>enum {
     int ANONYMOUS_XYZ = 4;
  };
  </code></pre>
  
  <p>generates XML like this:</p>
  
  <pre><code>  &lt;memberdef kind="enum" id="..." prot="public" static="no"&gt;
      &lt;name&gt;@5&lt;/name&gt;
      &lt;enumvalue id="..." prot="public"&gt;
        &lt;name&gt;ANONYMOUS_XYZ&lt;/name&gt;
        &lt;initializer&gt;= 4&lt;/initializer&gt;
    &lt;/memberdef&gt;
  </code></pre>
  
  <p>I understand what doxygen is doing here, but I want to understand why doxygen is doing it. Why not simply omit the &lt;name&gt; tag? Since it's there, what does <code>@5</code> refer to? If nothing else, I need to understand this use of '<code>@</code>' to be sure about whether/when I can ignore it.</p>
  
  <p>In the other case, a struct declaration like this.</p>
  
  <pre><code>typedef struct {
      struct {
          int abc;
      } abcStruct;
  } abcTypedef;
  </code></pre>
  
  <p>.generates (in part) XML like this:</p>
  
  <pre><code>  &lt;compounddef id="..." kind="struct" prot="public"&gt;
      &lt;compoundname&gt;abcTypedef&lt;/compoundname&gt;
      &lt;sectiondef kind="public-attrib"&gt;
        &lt;memberdef kind="variable" id="..." prot="public" static="no" mutable="no"&gt;
          &lt;type&gt;struct abcTypedef::@28&lt;/type&gt;
          &lt;definition&gt;struct abcTypedef::@28 abcTypedef::abcStruct&lt;/definition&gt;
          &lt;argsstring /&gt;
          &lt;name&gt;abcStruct&lt;/name&gt;
        &lt;/memberdef&gt;
      &lt;/sectiondef&gt;
    &lt;/compounddef&gt;
  </code></pre>
  
  <p>Here <code>@nn</code> apparently refers to a real element name (in this case abcStruct). I need to know how to find that name, so that I can make a program get it.</p>