我有以下代码:
char temp[32] = "";
sprintf(temp, "%02s", "A");
但是它的警告为:Warning 566: Inconsistent or redundant format char 's'
,然后我将代码更改为:sprintf(temp, "%2s", "A");
,警告消失了,有什么区别?
格式表示“ %0
0 填充”,但您不能将其与s
未定义的字符串格式说明符 ( ) 结合使用。
请参阅手册页:
0
该值应为零填充。对于 d、i、o、u、x、X、a、A、e、E、f、F、g 和 G 转换,转换后的值在左侧填充零而不是空白。如果 0 和 - 标志都出现,则 0 标志被忽略。如果使用数字转换(d、i、o、u、x 和 X)给出精度,则忽略 0 标志。对于其他转换,行为未定义。