回答編集履歴

5

追記

2018/01/16 12:08

投稿

toki_td
toki_td

スコア2850

test CHANGED
@@ -22,11 +22,15 @@
22
22
 
23
23
 
24
24
 
25
+ 規格などは下の通りですが、「できない」、というのは僕の間違いでした。
26
+
27
+ マクロの使い方に発想が足りませんでしたね、、、
25
28
 
26
29
 
27
- すみません、以下、僕の間違いでした。
28
30
 
31
+ 以下、旧回答
29
32
 
33
+ -------------------------------------------------------------------------------
30
34
 
31
35
  [JISの規格 6.10.2ソースファイル取込み](http://kikakurui.com/x3/X3010-2003-01.html)を見る限り、includeのファイル名としてマクロを記述することは可能だが、注釈(143)に隣接する文字列リテラルは連結されない、とあるのでそういった記述は無理だと思います。
32
36
 

4

追記

2018/01/16 12:08

投稿

toki_td
toki_td

スコア2850

test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
 
26
26
 
27
- すみません、以下、僕の違いでした。
27
+ すみません、以下、僕の違いでした。
28
28
 
29
29
 
30
30
 

3

回答誤り訂正

2018/01/16 12:03

投稿

toki_td
toki_td

スコア2850

test CHANGED
@@ -1,3 +1,33 @@
1
+ 気になったので調べ直したら以下の方法なら可能でした。
2
+
3
+ 文字列として連結せずに最後に文字列化 or <>で囲んでやればいけます。
4
+
5
+
6
+
7
+ ```C
8
+
9
+ #define LOCAL_INCLUDE(x) #x
10
+
11
+ #define GLOBAL_INCLUDE(x) <x>
12
+
13
+
14
+
15
+ #define COMMON_INCLUDE(x) GLOBAL_INCLUDE(common/include/dir/##x)
16
+
17
+
18
+
19
+ #include COMMON_INCLUDE(my_header.h)
20
+
21
+ ```
22
+
23
+
24
+
25
+
26
+
27
+ すみません、以下、僕の勘違いでした。
28
+
29
+
30
+
1
31
  [JISの規格 6.10.2ソースファイル取込み](http://kikakurui.com/x3/X3010-2003-01.html)を見る限り、includeのファイル名としてマクロを記述することは可能だが、注釈(143)に隣接する文字列リテラルは連結されない、とあるのでそういった記述は無理だと思います。
2
32
 
3
33
  C++でも規格ではありませんが[cppreference](http://en.cppreference.com/w/cpp/preprocessor/include)ではマクロの展開結果が<>か""で囲われている場合に限り許可される、とあるので同じだと思います。

2

誤記修正

2018/01/16 12:01

投稿

toki_td
toki_td

スコア2850

test CHANGED
@@ -1,6 +1,6 @@
1
1
  [JISの規格 6.10.2ソースファイル取込み](http://kikakurui.com/x3/X3010-2003-01.html)を見る限り、includeのファイル名としてマクロを記述することは可能だが、注釈(143)に隣接する文字列リテラルは連結されない、とあるのでそういった記述は無理だと思います。
2
2
 
3
- C++でも規格ではありませんが[cppreference](http://en.cppreference.com/w/cpp/preprocessor/include)ではマクロの展開結果が<>か""で囲われている場合に限り許可されるとあるので、C++でも同じだと思います。
3
+ C++でも規格ではありませんが[cppreference](http://en.cppreference.com/w/cpp/preprocessor/include)ではマクロの展開結果が<>か""で囲われている場合に限り許可されるとあるので同じだと思います。
4
4
 
5
5
 
6
6
 

1

誤記修正

2018/01/15 16:29

投稿

toki_td
toki_td

スコア2850

test CHANGED
@@ -30,6 +30,8 @@
30
30
 
31
31
  ```
32
32
 
33
- といった記載は可能ですから機能ごとにヘッダー一覧マクロを書いたヘッダーを作成しておくとかでしょうか?
33
+ といった記載は可能ですから機能ごとにヘッダー一覧マクロを書いたヘッダーを作成しておくとかでしょうか?
34
34
 
35
35
  それだったら最初から機能をまとめたヘッダー作ったほうが、という気がしなくもないですが。
36
+
37
+ 機能が巨大で部分的に使用できたり雑多に集めた機能集だとどうしようか悩むところですね。