Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有以下代码:
char temp[100] = ""; int a, b; sprintf(temp, "%02c|", "A"); sprintf(tmp, "%02s|", ((b== a) ? ("??") : ("__")));
但是当我 lint 时,它显示警告 566:不一致或冗余格式 char 'c',问题是什么以及如何解决?
我尝试:1)将“A”更改为“A”并使用“%02c|” 2) 改变“%02c|” 到“%02s|” 并保持“A”,仍然是同样的警告
关于不一致是正确的:
sprintf(temp, "%02c|", "A");
那应该是'A'要匹配的字符文字%c,而不是字符串文字"A"。如果要保留"A",请%s改用。
'A'
%c
"A"
%s
%c占位符接受 a ,而char不是指向 a 的指针char。 尝试使用'A'而不是"A".
char
此外,建议始终使用snprintf而不是sprintf.
snprintf
sprintf
您需要更改"A"为'A',或将格式更改为%s。