下記のようなマクロが定義されているものとする.
#define EXPAND_MACRO(_MACRO) \ _MACRO(a) \ _MACRO(b) \ #define DEFINE(_X) int _X; #define FUNC(_X) do { func(_X); } while (0);
このとき,
EXPAND_MACRO(DEFINE);
は下記のように展開される.
int a;
int b;
同様に
EXPAND_MACRO(FUNC);
は下記のように展開される.
func(a);
func(b);
便利そうな気もするけど多用すると混乱しそう.
0 件のコメント:
コメントを投稿