識別子と文字列の一致したリストを生成したいとします
enum
{
NAME_ONE,
NAME_TWO,
NAME_THREE
};
myFunction(NAME_ONE, "NAME_ONE");
myFunction(NAME_TWO, "NAME_TWO");
myFunction(NAME_THREE, "NAME_THREE");
..繰り返したり、コードを自動生成したりせずに、C /C++マクロを使用する
最初の推測:
を含む#includeファイルを追加できます
myDefine(NAME_ONE)
myDefine(NAME_TWO)
myDefine(NAME_THREE)
次に、次のように2回使用します。
#define myDefine(a) a,
enum {
#include "definitions"
}
#undef myDefine
#define myDefine(a) myFunc(a, "a");
#include "definitions"
#undef myDefine
しかし、#defineではパラメータを文字列内に入れることはできませんか?