我是一名初学编程的学生,只是想了解背后的原因。
当我使用这段代码时:
#include <stdio.h>
int main()
{
double pi = 3.1415926535897932;
printf("%lf",pi);
return 0;
}
编译器给出了这个警告。
ISO C90不支持“%lf” GNU_printf格式[-Wformat]我在Ubuntu终端中使用gcc编译器,带有(-o -Wall -ansi -pedantic-errors)。
这背后的原因是什么?我搜索了网页并发现在C99中允许使用此用法。为什么C90不允许printf中使用%lf?我可以使用%.16lf或%.16f,它们都打印相同的精度,那么是什么原因导致%lf在C90中无法正常工作?
%lf
对于printf
系列没有用处,只适用于scanf
系列。 - Sander De Dyckerdouble
应该使用%f
而不是%lf
进行打印。 - Jens Gustedt