参数中的字符串操作

itz*_*bby 0 c

我有两个功能.一个函数调用打印功能.
调用函数(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()

cle*_*anc 5

第二个参数print_infochar *message.你已经通过它("%#4x %s", key, keymap[key - 1]),知道逗号运算符只评估最后一项keymap[key - 1]似乎也是char *幸运的项目.您需要使用某种类型的printf函数来填充printf样式格式说明符"%4x %s"