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

質問編集履歴

5

タグを修正しました。

2021/10/07 06:29

投稿

l9uftn
l9uftn

スコア3

title CHANGED
File without changes
body CHANGED
File without changes

4

例を追記しました。

2021/10/07 06:29

投稿

l9uftn
l9uftn

スコア3

title CHANGED
File without changes
body CHANGED
@@ -2,10 +2,61 @@
2
2
  解決策や代替案、その他何らかの知見等ございましたら、お教えいただけないでしょうか。
3
3
 
4
4
  ### 前提・実現したいこと
5
-
6
- define や undef、ifdef、コメント(// や /* */) が乱立しているソースコードから、
5
+ define や undef、ifdef、コメント(// や /* */) が乱立しているソースコードを含むプロジェクト上から、
7
6
  有効なマクロの一覧を取得したいです。
7
+ ※下記のようなファイルがプロジェクト上に複数あるイメージです。
8
8
 
9
+ ```cpp
10
+ /* macro.h */
11
+ #define MACRO_A
12
+ #define MACRO_B
13
+ #define MACRO_C
14
+ #define MACRO_D
15
+
16
+ #undef MACRO_B
17
+
18
+ #ifdef MACRO_A
19
+ #define MACRO_A1
20
+ #endif
21
+
22
+ /* #define MACRO_E */
23
+ // #define MACRO_F
24
+ /* #define MACRO_G
25
+ */
26
+ /*
27
+ #define MACRO_G*/
28
+ /*
29
+ #define MACRO_H
30
+ */
31
+ ```
32
+
33
+ ```cpp
34
+ /* sample.c */
35
+ #include "macro.h"
36
+
37
+ #undef MACRO_C
38
+
39
+ #ifdef MACRO_A1
40
+ #define MACRO_A2
41
+ #endif
42
+
43
+ #ifndef MACRO_B
44
+ #undef MACRO_D
45
+ #define MACRO_A3
46
+ #endif
47
+
48
+ ```
49
+
50
+ 上記の場合、以下のように有効なマクロの一覧が取得したいです。
51
+
52
+ ```
53
+ MACRO_A
54
+ MACRO_A1
55
+ MACRO_A2
56
+ MACRO_A3
57
+
58
+ ```
59
+
9
60
  ### 発生している問題
10
61
 
11
62
  gcc や clang で -dM オプションを利用するように、

3

2021/10/07 05:39

投稿

l9uftn
l9uftn

スコア3

title CHANGED
File without changes
body CHANGED
@@ -26,4 +26,4 @@
26
26
 
27
27
  IDE:Visual Studio 2010
28
28
  言語:Visual C++
29
- 生成物:DLL(ActiveX コントロー)
29
+ 生成物:DLL(ActiveX コントロー)

2

参考にしているリンクを変更しました。

2021/10/06 10:20

投稿

l9uftn
l9uftn

スコア3

title CHANGED
File without changes
body CHANGED
@@ -8,10 +8,13 @@
8
8
 
9
9
  ### 発生している問題
10
10
 
11
+ gcc や clang で -dM オプションを利用するように、
11
- 下記のリンクのように、定義済みのマクロの一覧を取得したいのですが、
12
+ 定義済みのマクロの一覧を取得したいのですが、
12
13
  Visual C++ (Visual Studio 2010) で同様のことを実現する方法が見つかりませんでした。
13
14
 
15
+ (参考)
16
+ [知っていると便利な gcc のオプション](https://www.unixuser.org/~euske/doc/gccopts/)
14
- [clang の定義済みマクロを取得する - Secret Garden(Instrumental)](https://secret-garden.hatenablog.com/entry/2015/07/17/000000)
17
+ [gccプリプロセッサの定義済みマクロ(Predefined Macros)の確認方法 - Qiita](https://qiita.com/naohikowatanabe/items/a4e1a3f8080210257a42)
15
18
 
16
19
  ### 試したこと
17
20
 

1

コメントを追加しました。

2021/10/06 06:47

投稿

l9uftn
l9uftn

スコア3

title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,6 @@
1
+ 下記の件につきまして、
2
+ 解決策や代替案、その他何らかの知見等ございましたら、お教えいただけないでしょうか。
3
+
1
4
  ### 前提・実現したいこと
2
5
 
3
6
  define や undef、ifdef、コメント(// や /* */) が乱立しているソースコードから、