2

マクロから派生した値を持つ静的初期化子を持つ 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){}

そのプログラムを考えると、自動生成されたドキュメントを取得したいと思います

  1. 変数 myVar には 2 つの要素があります
  2. .f フィールドが消費するバイト数
  3. myVar の各要素の .fa フィールドの値

gcc -Eを使用して GCC から直接その情報の一部を取得できますが、 .fa の値も sizeof() も数値に完全には解決されません。探しているものを取得する方法についてのアイデアはありますか (できれば Doxygen を使用せずに)?

4

0 に答える 0