通常我们做的事情如下:
printf ( " %.*f ", 2, 3.3 );
精度宽度设置为2并输出 3.30 。但是如果宽度给出负值怎么办,例如
printf ( " %.*f ", -2, 3.3 );
输出 3.300000 ,表示正在使用默认宽度。那么 -2 到底在做什么呢?
答案 0 :(得分:4)
采用负精度,就好像省略了精度一样。
资料来源:C99 7.19.6.1(http://port70.net/~nsz/c/c99/n1256.html#7.19.6.1处的HTML版本)
或者来自POSIX(更具可读性):http://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html
答案 1 :(得分:3)
答案 2 :(得分:2)
C11晚期标准草案说(7.21.6.1):
采用负精度参数,就好像省略了精度一样。
(是的,它适用于fprintf
,这就是草案中printf
(7.21.6.3)所说的内容:)
printf函数等效于插入参数stdout的fprintf 在printf的参数之前。