1) - 我有两个枚举C++宏代码取代
enum FixedScriptingEvent {
FIXED_SCRIPTING_EVENT_NOTOUCH,
FIXED_SCRIPTING_EVENT_OVER_MOVED,
FIXED_SCRIPTING_EVENT_OVER_RELEASED,
FIXED_SCRIPTING_EVENT_OUTSIDE_RELEASED,
FIXED_SCRIPTING_EVENT_OUTSIDE_MOVED,
...
enum InputState {
INPUT_STATE_NOTOUCH,
INPUT_STATE_OVER_MOVED,
INPUT_STATE_OVER_RELEASED,
INPUT_STATE_OUTSIDE_RELEASED,
INPUT_STATE_OUTSIDE_MOVED,
INPUT_STATE_OUTSIDE_PRESSED,
...
2)我有这两个宏之间的关联以及需要调用该代码对于每个
if (inputMonitor.state.current == INPUT_STATE_NOTOUCH) {
executeScriptsForEvent(FIXED_SCRIPTING_EVENT_INPUT_STATE_CHANGED_TO_NOTOUCH);
}
if (inputMonitor.state.current == INPUT_STATE_MOVED) {
executeScriptsForEvent(FIXED_SCRIPTING_EVENT_INPUT_STATE_CHANGED_TO_MOVED);
}
3),所以我由该宏
#define EXECUTEFIXEDSCRIPTEVENTFORSTATE(x, y) if (inputMonitor.state.current == x) {executeScriptsForEvent(y);}
EXECUTEFIXEDSCRIPTEVENTFORSTATE(INPUT_STATE_NOTOUCH, FIXED_SCRIPTING_EVENT_INPUT_STATE_CHANGED_TO_NOTOUCH);
EXECUTEFIXEDSCRIPTEVENTFORSTATE(INPUT_STATE_OVER_MOVED, FIXED_SCRIPTING_EVENT_INPUT_STATE_CHANGED_TO_OVER_MOVED);
EXECUTEFIXEDSCRIPTEVENTFORSTATE(INPUT_STATE_OVER_RELEASED, FIXED_SCRIPTING_EVENT_INPUT_STATE_CHANGED_TO_OVER_RELEASED);
#undef EXECUTEFIXEDSCRIPTEVENTFORSTATE(x, y)
其是精细
4)的问题,我该怎么办水木清华这样
#define EXECUTEFIXEDSCRIPTEVENTFORSTATE(x)\
if (inputMonitor.state.current == INPUT_STATE_(x)) {\
executeScriptsForEvent(FIXED_SCRIPTING_EVENT_INPUT_STATE_CHANGED_TO_(x));
}\
,所以我只需要
EXECUTEFIXEDSCRIPTEVENTFORSTATE(NOTOUCH);
这应该是等同于我目前的:
EXECUTEFIXEDSCRIPTEVENTFORSTATE(INPUT_STATE_NOTOUCH, FIXED_SCRIPTING_EVENT_INPUT_STATE_CHANGED_TO_NOTOUCH);
但编译器指出NOTOUCH没有定义,所以我不能从宏4
而你的问题是? – Nawaz 2011-03-25 14:46:40
我不能使用宏4,因为编译器说NOTOUCH没有定义 – 2011-03-25 14:49:11