質問するログイン新規登録

回答編集履歴

2

追記

2017/09/14 09:08

投稿

PineMatsu
PineMatsu

スコア3581

answer CHANGED
@@ -8,4 +8,30 @@
8
8
  マクロの行分けに使っているバックスラッシュが悪さをしているのでしょうね。
9
9
 
10
10
  オプションを色々探してみましたがそれらしいものが見当たりませんね。
11
- 解決になっておらずすいません。
11
+ 解決になっておらずすいません。
12
+
13
+ ---
14
+ 再追記:
15
+ うまく出ましたよ!
16
+ 以下のように、関数形式の複数行マクロと次の定義の間にセミコロン(;)を入れれば出るようになります。
17
+ ```C
18
+ /**
19
+ * @def Hoge(x)
20
+ * 適当な説明
21
+ */
22
+ #define Hoge(x) ¥
23
+ { ¥
24
+ (x+1) ¥
25
+ }
26
+
27
+ ; /* <-- これを追加 */
28
+
29
+ /**
30
+ * @def HOGE_MAX (0xFF)
31
+ * ほげ最大値
32
+ */
33
+ #define HOGE_MAX (0xFF)
34
+
35
+ ```
36
+ セミコロンだけの行はC/C++では無視されるのでコンパイルエラーにもなりません。(VC++ではそう)
37
+ ところでこの関数形式のマクロですがこのままではエラーになりますね。(セミコロンがないので)

1

追記

2017/09/14 09:08

投稿

PineMatsu
PineMatsu

スコア3581

answer CHANGED
@@ -1,1 +1,11 @@
1
- ちょっと今doxygenを動かせる環境にないのですが、関数形式のマクロを「@def」ではなく「@fn」にしてもダメなんでしょうか?
1
+ ちょっと今doxygenを動かせる環境にないのですが、関数形式のマクロを「@def」ではなく「@fn」にしてもダメなんでしょうか?
2
+
3
+ ---
4
+ 追記:
5
+ 確かに、ダメですね。定義が逆の場合は出るのですが・・・。
6
+ 「@fn」でも同じですね。
7
+ 色々やってみましたがダメでした。
8
+ マクロの行分けに使っているバックスラッシュが悪さをしているのでしょうね。
9
+
10
+ オプションを色々探してみましたがそれらしいものが見当たりませんね。
11
+ 解決になっておらずすいません。