質問編集履歴

3

誤字脱字の修正

2017/09/14 15:02

投稿

megane814
megane814

スコア11

test CHANGED
File without changes
test CHANGED
@@ -36,6 +36,134 @@
36
36
 
37
37
  /**
38
38
 
39
+ * @def FOO (-1)
40
+
41
+ * 適当な説明
42
+
43
+ */
44
+
45
+ #define FOO (-1)
46
+
47
+
48
+
49
+ /**
50
+
51
+ * @def MOO (1)
52
+
53
+ * 適当な説明
54
+
55
+ */
56
+
57
+ #define MOO (1)
58
+
59
+
60
+
61
+ /**
62
+
63
+ * @def Hoge(x)
64
+
65
+ * 問題が発生する原因となるマクロ
66
+
67
+ */
68
+
69
+ #define Hoge(x) ¥
70
+
71
+ { ¥
72
+
73
+ hoge(x, FOO); ¥
74
+
75
+ moge(x, MOO); ¥
76
+
77
+ }
78
+
79
+
80
+
81
+ /**
82
+
83
+ * @def HOGE_MAX (0xFF)
84
+
85
+ * 影響を受ける記述
86
+
87
+ */
88
+
89
+ #define HOGE_MAX (0xFF)
90
+
91
+
92
+
93
+ /**
94
+
95
+ * @brief 適当な説明
96
+
97
+ *
98
+
99
+ * @param[in] (a) 適当な説明
100
+
101
+ * @param[in] (b) 適当な説明
102
+
103
+ * @return -
104
+
105
+ */
106
+
107
+ static void hoge ( int a, int b )
108
+
109
+ {}
110
+
111
+
112
+
113
+ /**
114
+
115
+ * @brief 適当な説明
116
+
117
+ *
118
+
119
+ * @param[in] (c) 適当な説明
120
+
121
+ * @param[in] (d) 適当な説明
122
+
123
+ * @return -
124
+
125
+ */
126
+
127
+ static void moge ( int c, int d );
128
+
129
+ {}
130
+
131
+ ```
132
+
133
+
134
+
135
+ ### 表示されたエラーメッセージ
136
+
137
+ > Searching for documented defines...
138
+
139
+ hoge.c:12: warning: documentation for unknown define ¥HOGE_MAX found.
140
+
141
+
142
+
143
+ 関数形式マクロの改行に使用した`¥`が後の`@def`に影響を与えているようです。
144
+
145
+
146
+
147
+ ###試したこと
148
+
149
+
150
+
151
+ #### 試したことその1
152
+
153
+
154
+
155
+ ```C
156
+
157
+
158
+
159
+ static void hoge ( int a, int b );
160
+
161
+ static void moge ( int c, int d );
162
+
163
+
164
+
165
+ /**
166
+
39
167
  * @def FOO
40
168
 
41
169
  * 適当な説明
@@ -62,7 +190,7 @@
62
190
 
63
191
  * @def Hoge(x)
64
192
 
65
- * 問題が発生する原因とるマクロ
193
+ * 適当説明
66
194
 
67
195
  */
68
196
 
@@ -78,11 +206,15 @@
78
206
 
79
207
 
80
208
 
209
+ /** @def */ /* <---- このコメントを追加 */
210
+
211
+
212
+
81
213
  /**
82
214
 
83
215
  * @def HOGE_MAX (0xFF)
84
216
 
85
- * 影響を受ける記述
217
+ * ほげ最大値
86
218
 
87
219
  */
88
220
 
@@ -132,23 +264,27 @@
132
264
 
133
265
 
134
266
 
267
+ コメント`/** @def */`を追加すると、ワーニングは消えました。
268
+
269
+ (問題点1は解消されました)
270
+
271
+ どういう作用によるものかはわかっていません。
272
+
273
+ (正しく書くなら/** * @def */だと思いますが、これでは解消されませんでした)
274
+
275
+ (@defの代わりに@fnでは解消されませんでした)
276
+
135
- ### 表示されたエラーメッセージ
277
+ 問題点2は解消されませんでし
136
-
137
- > Searching for documented defines...
278
+
138
-
139
- hoge.c:12: warning: documentation for unknown define ¥HOGE_MAX found.
140
-
141
-
142
-
143
- 関数形式マクロの改行にしようした`¥`が後の`@def`に影響を与えているようです。
144
-
145
-
146
-
147
- ###試したこと
279
+ 問題点3も解消されませんでした
148
-
149
-
150
-
280
+
281
+
282
+
151
- #### 試したことその
283
+ #### 試したことその
284
+
285
+
286
+
287
+ 回答で頂いたセミコロンを追加する案を試してみました。
152
288
 
153
289
 
154
290
 
@@ -206,7 +342,7 @@
206
342
 
207
343
 
208
344
 
209
- /** @def */ /* <---- このコを追加 */
345
+ ; /* <---- このセミンを追加 */
210
346
 
211
347
 
212
348
 
@@ -264,142 +400,6 @@
264
400
 
265
401
 
266
402
 
267
- コメント`/** @def */`を追加すると、ワーニングは消えました。
268
-
269
- (問題点1は解消されました)
270
-
271
- どういう作用によるものかはわかっていません。
272
-
273
- (正しく書くなら/** * @def */だと思いますが、これでは解消されませんでした)
274
-
275
- (@defの代わりに@fnでは解消されませんでした)
276
-
277
- 問題点2は解消されませんでした。
278
-
279
- 問題点3も解消されませんでした。
280
-
281
-
282
-
283
- #### 試したことその2
284
-
285
-
286
-
287
- 回答で頂いたセミコロンを追加する案を試してみました。
288
-
289
-
290
-
291
- ```C
292
-
293
-
294
-
295
- static void hoge ( int a, int b );
296
-
297
- static void moge ( int c, int d );
298
-
299
-
300
-
301
- /**
302
-
303
- * @def FOO
304
-
305
- * 適当な説明
306
-
307
- */
308
-
309
- #define FOO (-1)
310
-
311
-
312
-
313
- /**
314
-
315
- * @def MOO
316
-
317
- * 適当な説明
318
-
319
- */
320
-
321
- #define MOO (1)
322
-
323
-
324
-
325
- /**
326
-
327
- * @def Hoge(x)
328
-
329
- * 適当な説明
330
-
331
- */
332
-
333
- #define Hoge(x) ¥
334
-
335
- { ¥
336
-
337
- hoge(x, FOO); ¥
338
-
339
- moge(x, MOO); ¥
340
-
341
- }
342
-
343
-
344
-
345
- ; /* <---- このセミコロンを追加 */
346
-
347
-
348
-
349
- /**
350
-
351
- * @def HOGE_MAX (0xFF)
352
-
353
- * ほげ最大値
354
-
355
- */
356
-
357
- #define HOGE_MAX (0xFF)
358
-
359
-
360
-
361
- /**
362
-
363
- * @brief 適当な説明
364
-
365
- *
366
-
367
- * @param[in] (a) 適当な説明
368
-
369
- * @param[in] (b) 適当な説明
370
-
371
- * @return -
372
-
373
- */
374
-
375
- static void hoge ( int a, int b )
376
-
377
- {}
378
-
379
-
380
-
381
- /**
382
-
383
- * @brief 適当な説明
384
-
385
- *
386
-
387
- * @param[in] (c) 適当な説明
388
-
389
- * @param[in] (d) 適当な説明
390
-
391
- * @return -
392
-
393
- */
394
-
395
- static void moge ( int c, int d );
396
-
397
- {}
398
-
399
- ```
400
-
401
-
402
-
403
403
  セミコロンを追加した場合、問題点1は解消されます。
404
404
 
405
405
  しかし、代わりに、HTMLドキュメントに`変数¥`が出力されるようになってしましました。

2

問題点の記述をより正確にした。

2017/09/14 15:02

投稿

megane814
megane814

スコア11

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  0. 未知の定義`¥HOGE_MAX`が定義される(doxygen warningの発生)
14
14
 
15
- 1. 関数mogeについて、`static void moge ( int c, int d )`の説明と、`moge(x, MOO)`の説明の、2つの説明が表示される
15
+ 1. 出力したHTMLドキュメントの関数mogeについて、`static void moge ( int c, int d )`の説明と、`moge(x, MOO)`の説明の、2つの説明が表示される
16
16
 
17
17
  2. 出力したHTMLドキュメントにHOGE_MAXの説明「影響を受ける記述」が表示されない
18
18
 

1

ソースを正確に記述した。エラーメッセージを記載した。問題点を明確にした。

2017/09/14 15:00

投稿

megane814
megane814

スコア11

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,19 @@
6
6
 
7
7
 
8
8
 
9
+ 下記に紹介するような複数行に渡る関数形式マクロを使用すると、2つの問題が発生してしまいました。
10
+
11
+
12
+
13
+ 0. 未知の定義`¥HOGE_MAX`が定義される(doxygen warningの発生)
14
+
15
+ 1. 関数mogeについて、`static void moge ( int c, int d )`の説明と、`moge(x, MOO)`の説明の、2つの説明が表示される
16
+
17
+ 2. 出力したHTMLドキュメントにHOGE_MAXの説明「影響を受ける記述」が表示されない
18
+
19
+
20
+
9
- 複数行に渡る関数形式マクロを使用すると改行のためのバックスラッシュ(\)(Windows環境なので¥)が、次のdoxygenメントと結合して(?)、意図しない特殊コマンドとして認識されてしまっていようなので
21
+ 複数行に渡る関数形式マクロを使用しても意図通りにdoxygenでドキュメントを出力すため方法はありますしょうか
10
22
 
11
23
 
12
24
 
@@ -14,19 +26,53 @@
14
26
 
15
27
  ```C
16
28
 
29
+
30
+
31
+ static void hoge ( int a, int b );
32
+
33
+ static void moge ( int c, int d );
34
+
35
+
36
+
37
+ /**
38
+
39
+ * @def FOO
40
+
41
+ * 適当な説明
42
+
43
+ */
44
+
45
+ #define FOO (-1)
46
+
47
+
48
+
49
+ /**
50
+
51
+ * @def MOO
52
+
53
+ * 適当な説明
54
+
55
+ */
56
+
57
+ #define MOO (1)
58
+
59
+
60
+
17
61
  /**
18
62
 
19
63
  * @def Hoge(x)
20
64
 
21
- * 適当説明
65
+ * 問題が発生する原因とるマクロ
22
-
66
+
23
- */
67
+ */
24
-
68
+
25
- #define Hoge(x) ¥
69
+ #define Hoge(x) ¥
26
-
70
+
27
- { ¥
71
+ { ¥
28
-
72
+
29
- (x+1) ¥
73
+ hoge(x, FOO); ¥
74
+
75
+ moge(x, MOO); ¥
30
76
 
31
77
  }
32
78
 
@@ -36,37 +82,329 @@
36
82
 
37
83
  * @def HOGE_MAX (0xFF)
38
84
 
85
+ * 影響を受ける記述
86
+
87
+ */
88
+
89
+ #define HOGE_MAX (0xFF)
90
+
91
+
92
+
93
+ /**
94
+
95
+ * @brief 適当な説明
96
+
97
+ *
98
+
99
+ * @param[in] (a) 適当な説明
100
+
101
+ * @param[in] (b) 適当な説明
102
+
103
+ * @return -
104
+
105
+ */
106
+
107
+ static void hoge ( int a, int b )
108
+
109
+ {}
110
+
111
+
112
+
113
+ /**
114
+
115
+ * @brief 適当な説明
116
+
117
+ *
118
+
119
+ * @param[in] (c) 適当な説明
120
+
121
+ * @param[in] (d) 適当な説明
122
+
123
+ * @return -
124
+
125
+ */
126
+
127
+ static void moge ( int c, int d );
128
+
129
+ {}
130
+
131
+ ```
132
+
133
+
134
+
135
+ ### 表示されたエラーメッセージ
136
+
137
+ > Searching for documented defines...
138
+
139
+ hoge.c:12: warning: documentation for unknown define ¥HOGE_MAX found.
140
+
141
+
142
+
143
+ 関数形式マクロの改行にしようした`¥`が後の`@def`に影響を与えているようです。
144
+
145
+
146
+
147
+ ###試したこと
148
+
149
+
150
+
151
+ #### 試したことその1
152
+
153
+
154
+
155
+ ```C
156
+
157
+
158
+
159
+ static void hoge ( int a, int b );
160
+
161
+ static void moge ( int c, int d );
162
+
163
+
164
+
165
+ /**
166
+
167
+ * @def FOO
168
+
169
+ * 適当な説明
170
+
171
+ */
172
+
173
+ #define FOO (-1)
174
+
175
+
176
+
177
+ /**
178
+
179
+ * @def MOO
180
+
181
+ * 適当な説明
182
+
183
+ */
184
+
185
+ #define MOO (1)
186
+
187
+
188
+
189
+ /**
190
+
191
+ * @def Hoge(x)
192
+
193
+ * 適当な説明
194
+
195
+ */
196
+
197
+ #define Hoge(x) ¥
198
+
199
+ { ¥
200
+
201
+ hoge(x, FOO); ¥
202
+
203
+ moge(x, MOO); ¥
204
+
205
+ }
206
+
207
+
208
+
209
+ /** @def */ /* <---- このコメントを追加 */
210
+
211
+
212
+
213
+ /**
214
+
215
+ * @def HOGE_MAX (0xFF)
216
+
39
217
  * ほげ最大値
40
218
 
41
219
  */
42
220
 
43
221
  #define HOGE_MAX (0xFF)
44
222
 
223
+
224
+
225
+ /**
226
+
227
+ * @brief 適当な説明
228
+
229
+ *
230
+
231
+ * @param[in] (a) 適当な説明
232
+
233
+ * @param[in] (b) 適当な説明
234
+
235
+ * @return -
236
+
237
+ */
238
+
239
+ static void hoge ( int a, int b )
240
+
241
+ {}
242
+
243
+
244
+
245
+ /**
246
+
247
+ * @brief 適当な説明
248
+
249
+ *
250
+
251
+ * @param[in] (c) 適当な説明
252
+
253
+ * @param[in] (d) 適当な説明
254
+
255
+ * @return -
256
+
257
+ */
258
+
259
+ static void moge ( int c, int d );
260
+
261
+ {}
262
+
45
263
  ```
46
264
 
47
265
 
48
266
 
49
- 職場で発生した問題で、手元に再現環境がないため、doxygenが出力した詳細なエラメッセージ(warningでした)についてはわかりません
50
-
51
- 意味的に、意図ないコマンド¥HOGE_MAXが〜という感じだっと思います。
52
-
53
-
54
-
55
- 出力されたhtmlファイルを表示する、Hoge(x)につては正常に表示されしたが、HOGE_MAXの説明「ほげ最大」が表示されませんでした
56
-
57
-
58
-
59
- 複数行に渡る関数形式マクロを使用しても、意図通りにdoxygenでドキュメントを出力するための方法ありでしょうか
60
-
61
-
62
-
63
- ###試したこと
64
-
65
- 関数形式マクロ自体のdoxygen用コメントを削除てみましが、関係ありませんでした。
66
-
67
- 関数形式マクロの最後の閉じカッコ(})の後ろに/** @def */と書くと、doxygenのwarning自体は表示されなくなりました。
68
-
69
- かし、やはりHOGE_MAXの説明「ほげ最大」は表示されないまでした。
267
+ コメント`/** @def */`を追加すると、ワニングは消えました。
268
+
269
+ (問題点1解消されました
270
+
271
+ どういう作用によるものかはわかっていません。
272
+
273
+ (正しく書くなら/** * @def */だいまが、これでは解消されませんでした
274
+
275
+ (@defの代わりに@fnでは解消されませんでした)
276
+
277
+ 問題点2解消されせんでし
278
+
279
+ 問題点3も解消されませんでした。
280
+
281
+
282
+
283
+ #### 試したことその2
284
+
285
+
286
+
287
+ 回答で頂いたセミコロンを追加する案を試てみました。
288
+
289
+
290
+
291
+ ```C
292
+
293
+
294
+
295
+ static void hoge ( int a, int b );
296
+
297
+ static void moge ( int c, int d );
298
+
299
+
300
+
301
+ /**
302
+
303
+ * @def FOO
304
+
305
+ * 適当な説明
306
+
307
+ */
308
+
309
+ #define FOO (-1)
310
+
311
+
312
+
313
+ /**
314
+
315
+ * @def MOO
316
+
317
+ * 適当な説明
318
+
319
+ */
320
+
321
+ #define MOO (1)
322
+
323
+
324
+
325
+ /**
326
+
327
+ * @def Hoge(x)
328
+
329
+ * 適当な説明
330
+
331
+ */
332
+
333
+ #define Hoge(x) ¥
334
+
335
+ { ¥
336
+
337
+ hoge(x, FOO); ¥
338
+
339
+ moge(x, MOO); ¥
340
+
341
+ }
342
+
343
+
344
+
345
+ ; /* <---- このセミコロンを追加 */
346
+
347
+
348
+
349
+ /**
350
+
351
+ * @def HOGE_MAX (0xFF)
352
+
353
+ * ほげ最大値
354
+
355
+ */
356
+
357
+ #define HOGE_MAX (0xFF)
358
+
359
+
360
+
361
+ /**
362
+
363
+ * @brief 適当な説明
364
+
365
+ *
366
+
367
+ * @param[in] (a) 適当な説明
368
+
369
+ * @param[in] (b) 適当な説明
370
+
371
+ * @return -
372
+
373
+ */
374
+
375
+ static void hoge ( int a, int b )
376
+
377
+ {}
378
+
379
+
380
+
381
+ /**
382
+
383
+ * @brief 適当な説明
384
+
385
+ *
386
+
387
+ * @param[in] (c) 適当な説明
388
+
389
+ * @param[in] (d) 適当な説明
390
+
391
+ * @return -
392
+
393
+ */
394
+
395
+ static void moge ( int c, int d );
396
+
397
+ {}
398
+
399
+ ```
400
+
401
+
402
+
403
+ セミコロンを追加した場合、問題点1は解消されます。
404
+
405
+ しかし、代わりに、HTMLドキュメントに`変数¥`が出力されるようになってしましました。
406
+
407
+ また、問題点2、問題点3は解消されませんでした。
70
408
 
71
409
 
72
410