2017/02/27

[doxy]typedefしたタグ無しstructは、struct扱い

C/C++で書く場合、doxygen形式でコメントを書くことが多い。
Cの場合で悩むのが、structをタグ無しで書いて、typedefして使っている場合だ。
これは、@typedefなのだろうか? それとも@structなのだろうか(Qt形式で書いてるので、@)。

なんとなく@structのような気がするけど、いつも悩むので結果を残しておこう。
doxygenは、Windows版の1.8.13だ。

01: /** @file   test.c
02:  *  @brief  テスト
03:  */
04: #include <stdio.h>
05: 
06: /** @typedef    IntType_t
07:  *  @brief      整数型
08:  */
09: typedef int IntType_t;
10: 
11: 
12: /** @typedef    StructA
13:  *  @brief      構造体A
14:  */
15: typedef struct {
16:     int     value1;     ///< 値1
17:     int     value2;     ///< 値2
18: } StructA;
19: 
20: int main(int argc, char *argv[])
21: {
22:     StructA a = { .value1 = 123, .value2 = 456 };
23:     printf("value1 = %d\n", a.value1);
24:     printf("value2 = %d\n", a.value2);
25:     return 0;
26: }

HTMLの出力。

image

というわけで、タグ無しでtypedefしたstructは、@typedefで書いていたとしても@struct扱いに近くなるのだ。
まあ、doxygenコンパイラもwarningを出しているので、わかりやすいな。

 

ちゃんと@structで書いておくと、briefを出してくれる。
だから、typedefしていたとしてもstructは@structで書こう。

image

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。