4 ms·
Or make it real data: #define KEY_TABLE(ENTRY) \ ENTRY(MODKEY, key, XK_p, spawn, ...)\ ENTRY(MODKEY|ShiftMask, key, XK_p, spawn, ...)\ The
by thechao 9y ago
Or make it real data:
#define KEY_TABLE(ENTRY) \
ENTRY(MODKEY, key, XK_p, spawn, ...)\
ENTRY(MODKEY|ShiftMask, key, XK_p, spawn, ...)\
Then:
#ifdef KEY_TABLE_ENTRY
#undef KEY_TABLE_ENTRY
#endif//KEY_TABLE_ENTRY
static Key keys[] = {
#define KEY_TABLE_ENTRY(MOD, KEY, FUN, ARG) { MOD, KEY, FUN, ARG },
KEY_TABLE(KEY_TABLE_ENTRY)
#undef KEY_TABLE_ENTRY
};
- tom_mellior 9y agoNo need to guard #undef with #ifdef, it's a no-op if the macro is not already defined.
- earenndil 9y agoMost compilers will warn if you #undef something not #defined.
- tom_mellior 9y agoCan you name one and explain how to call it? I can get neither GCC nor Clang to warn about the following file: #undef THIS_VARIABLE_IS_NOT_DEFINED
- earenndil 9y agoNevermind, you're right. The warning I was thinking of was redefinition.