我有一个令牌列表,定义如下:
#define TOKENS ACC, STOP, RUN, BACK
这份 list 可能会发生变化. 我想根据该列表创建一个函数指针数组,方法类似于:
int (*callbacks[])(const char * arg) =
{
some_macro_shenanigans(TOKENS)
};
some_macro_shenanigans(TOKENS)
应该扩展到ACC_callback, STOP_callback, ...
,以此类推.稍后,我想创建一个基于TOKENS
的字符串数组,如下所示:
const char * const token_str[] = some_other_macro_shenanigans(TOKENS);
它将扩展为与以下内容相当的东西:
const char * const token_str[] = [ "ACC", "STOP", "RUN", "BACK" /* and others if present */ ];
这是可行的吗?