2

我有以下代码:

char temp[32] = "";
sprintf(temp, "%02s", "A");

但是它的警告为:Warning 566: Inconsistent or redundant format char 's',然后我将代码更改为:sprintf(temp, "%2s", "A");,警告消失了,有什么区别?

4

1 回答 1

6

格式表示“ %00 填充”,但您不能将其与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 标志。对于其他转换,行为未定义。

于 2013-06-18T10:01:04.343 回答