- 486 名前:デフォルトの名無しさん mailto:sage [2016/03/19(土) 21:51:12.72 ID:VQqTJbFl.net]
- 4引数まで版でconst charの中身の展開は省略
#define SELECT4(d1, d2, d3, d4, name, ...) name #define MAKE_ENUM(...) SELECT4(__VA_ARGS__, MAKE_ENUM_4, MAKE_ENUM_3, MAKE_ENUM_2, MAKE_ENUM_1)(__VA_ARGS__) #define MAKE_ENUM_1(key) ENUM_ ## key #define MAKE_ENUM_2(key, ...) ENUM_ ## key, MAKE_ENUM_1(__VA_ARGS__) #define MAKE_ENUM_3(key, ...) ENUM_ ## key, MAKE_ENUM_2(__VA_ARGS__) #define MAKE_ENUM_4(key, ...) ENUM_ ## key, MAKE_ENUM_3(__VA_ARGS__) #define MAKE(...) \ typedef enum _ENUM{ \ MAKE_ENUM(__VA_ARGS__), ENUM_Num \ } ENUM; \ //const char *Name[ENUM_Num] ={ #__VA_ARGS__ };
|

|