我错过了
<references>
如果使用它们的函数在同一源文件中定义,则标记全局变量。如果我在不同的源文件中定义全局变量,它们就在那里。有没有任何已知的解决方案?嵌入式系统的代码是C.
更新
我已将其缩小到这个:如果函数引用了全局结构的成员,则只会引用typedef成员,而不是对变量的引用:
test.h
typedef struct
{
int b;
} a_S;
extern a_S a;
test1.c
#include "test.h"
a_S a;
void UseA1(void)
{
a_S *ptrA = &a; /* working, "UseA1" will reference "a" in the doxygen xml output */
}
void UseA2(void)
{
a.b = 0; /* not working, "UseA2" will NOT reference "a" in the doxygen xml output */
}
但仅当变量在同一源文件中定义时。如果它是在另一个源文件中定义的,则会有对变量的引用以及对typedef成员的引用:
test_data.c
#include "test.h"
a_S a;
test2.c中
#include "test.h"
void UseA1(void)
{
a_S *ptrA = &a; /* still working */
}
void UseA2(void)
{
a.b = 0; /* working too! */
}
不幸的是,由于我们现有的编码标准,这不是一种选择......有什么方法可以解决这个问题吗?