- C言語なら俺に聞け(入門編)Part 127©2ch.net
19 :デフォルトの名無しさん[sage]:2015/02/25(水) 09:26:46.02 ID:rorXnPjF - >>13
ENUM_TYPE_EVENTが良くわからないけど、こういう事か? #define DEFINE_HOGE(prefix, name, val) enum { prefix ## _ ## name = val}; #define DEFINE_TYPE(name, val) DEFINE_HOGE(TYPE, name, val) #define DEFINE_SIZE(name, val) DEFINE_HOGE(SIZE, name, val) #define DEFINE_ASSERT(type, name, val) DEFINE_HOGE(ASSERT_ ## type, name, val) #define DEFINE_ATIMEOUT(name, val) DEFINE_ASSERT(TIMEOUT, name, val) #define DEFINE_ACALLBACK(name, val) DEFINE_ASSERT(CALLBACK, name, val) #define DEFINE_13(name,type,size,timeo,callback) \ DEFINE_TYPE(name, type) \ DEFINE_SIZE(name, size) \ DEFINE_ATIMEOUT(name, timeo) \ DEFINE_ACALLBACK(name, callback) DEFINE_13(EVENT, 0xABC0, 0x0008, 0x40000001, 0x2000000A) あるいは #define DEFINE_HOGE(prefix, name, val) prefix ## _ ## name = val, #define DEFINE_TYPE(name, val) DEFINE_HOGE(TYPE, name, val) #define DEFINE_SIZE(name, val) DEFINE_HOGE(SIZE, name, val) #define DEFINE_ASSERT(type, name, val) DEFINE_HOGE(ASSERT_ ## type, name, val) #define DEFINE_ATIMEOUT(name, val) DEFINE_ASSERT(TIMEOUT, name, val) #define DEFINE_ACALLBACK(name, val) DEFINE_ASSERT(CALLBACK, name, val) #define DEFINE_13(name,type,size,timeo,callback) \ DEFINE_TYPE(name, type) \ DEFINE_SIZE(name, size) \ DEFINE_ATIMEOUT(name, timeo) \ DEFINE_ACALLBACK(name, callback) \ ENUM_TYPE_ ## name, enum { DEFINE_13(EVENT, 0xABC0, 0x0008, 0x40000001, 0x2000000A) DEFINE_13(PACE, 0xABC1, 0x0009, 0x40000002, 0x2000000B) };
|