我有一些 C 代码具有静态初始化程序,其值是从宏派生的。这些初始化程序本质上是我的代码的外部 API。我正在寻找一种为我的代码自动生成文档的方法,以便初始化值很容易看到。
例如,下面是一个非常简化的 C 程序 #include
typedef unsigned int u32;
#define Q 5
#define W 7
#define BaseNum 0x1000
#define CalculateNumber(x) (BaseNum + x)
#define SomeOtherCalc(x,y) (x<<y)
typedef struct
{
u32 a;
} foo;
typedef struct
{
foo f;
} bar;
static const bar myVar[] =
{
{
.f = {
.a = CalculateNumber(SomeOtherCalc(Q,W))*sizeof(u32),
},
},
{
.f = {
.a = CalculateNumber(SomeOtherCalc(W,Q))*sizeof(u32),
},
},
};
void main(void){}
鉴于该程序,我想获得自动生成的文档,其中说明
- 变量 myVar 有两个元素
- .f 字段消耗的字节数
- myVar 中每个元素的 .fa 字段的值
我可以使用gcc -E直接从 GCC 获取一些信息,但它并不能完全将 .fa 的值或 sizeof() 解析为数字。关于如何获得我想要的东西的任何想法(最好不使用 Doxygen)?