问题描述
我要使用一个宏,该宏采用以下格式的参数:
COMB(unique identifier,argument 1,argument 2,argument 3)
我想为其创建一个包装器,以自动生成唯一标识符。我发现this answer包含用于生成随机ID的代码,该代码已在我的代码中使用:
#define PP_CAT(a,b) PP_CAT_I(a,b)
#define PP_CAT_I(a,b) PP_CAT_II(~,a ## b)
#define PP_CAT_II(p,res) res
#define UNIQUE_NAME(base) PP_CAT(base,__COUNTER__)
#define COMB_U(key,...) COMB(UNIQUE_NAME(comb_r_),key,__VA_ARGS__)
// Using the macro
// The parameters are enums
COMB_U(KB_1,KB_2,KC_Y)
当我编译它时,我从COMB宏代码内部得到了很多错误,如下所示:
“ cmb_UNIQUE_NAME”声明为函数,返回数组
函数“ cmb_UNIQUE_NAME”的初始化类似于变量
此处未声明“ comb_r _”(不在函数中)
#define COMB_U(key,...)COMB(UNIQUE_NAME(comb_r_),key, VA_ARGS )
还有一些似乎与错误无关的消息,例如:
注意:扩展宏“ COMB_U”
COMB_U(KB_1,KB_2,KC_Y)
我该如何解决?
作为参考,COMB宏的源在这里:https://github.com/germ/qmk_firmware/blob/master/keyboards/gboards/g/keymap_combo.h
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)