下記のようなマクロが定義されているものとする.
#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 件のコメント:
コメントを投稿