1

関数宣言と構造体を生成する C ソース ファイルにマクロがあります。

それらを文書化するために doxygen を使用することにしましたが、ソース ファイルに宣言が明示的に含まれていない限り、doxygen は適切な文書を生成していません。

以下に少し例を示します。クラス宣言の一種のイディオムであるマクロがあります。

#define CLASS(x) \
typedef struct _##x x; \
typedef struct _##x *P##x; \
typedef struct _##x **PP##x; \
typedef struct _##x

したがって、書く代わりに:

    /**
  * \struct _Vector
  * \brief the vector structure handles stuff to store data accessible by an index.
  */
typedef struct _Vector {
    /*@{*/
    Container   container;      /**< inherits from container */
    size_t      allocated_size; /**< the total allocated size of a vector (private usage) */
    void*       elements;       /**< pointer to the allocated memory space (private usage) */
    /*@}*/
} Vector, *PVector;

私は代わりに書くかもしれません:

/**
  * \struct _Vector
  * \brief the vector structure handles stuff to store data accessible by an index.
  */
CLASS(Vector) {
    /*@{*/
    Container   container;      /**< inherits from container */
    size_t      allocated_size; /**< the total allocated size of a vector (private usage) */
    void*       elements;       /**< pointer to the allocated memory space (private usage) */
    /*@}*/
};

しかし、2 番目のケースでは、doxygen は構造体メンバーに関するドキュメントを生成しません。

このような問題に準拠したソリューションを見つけるにはどうすればよいですか?

4

0 に答える 0