我有两个功能.一个函数调用打印功能.
调用函数(key是一个介于0和42之间的数字,表示遥控器的键,keymap只是将名称映射到键):
void calling_function(int key){
print_info("[KEY]", ("%#4x %s", key, keymap[key - 1]));
...
}
Run Code Online (Sandbox Code Playgroud)
和打印功能:
print_info(char *prefix, char *message){
print("%s %s\n", prefix, message);
}
Run Code Online (Sandbox Code Playgroud)
但输出看起来像这样:
[KEY] COLOR_RED
所以缺少int,为什么不插入整数?我想不合作sprintf()
第二个参数print_info是char *message.你已经通过它("%#4x %s", key, keymap[key - 1]),知道逗号运算符只评估最后一项keymap[key - 1]似乎也是char *幸运的项目.您需要使用某种类型的printf函数来填充printf样式格式说明符"%4x %s"