我是一名初学者编程的学生,只是想了解背后的原因。C90不允许在printf中使用%,为什么?
当我使用此代码:
#include <stdio.h>
int main()
{
double pi = 3.1415926535897932;
printf("%lf",pi);
return 0;
}
编译器会发出这样的警告。 ISO C90不支持 '%LF' gnu_printf格式[-Wformat]
我用gcc编译器在Ubuntu终端用(-O -Wall -ansi -pedantic-错误)
背后有什么原因这个?我搜索了网页,发现这个用法在C99中是允许的。为什么C90不允许在printf中使用%?我可以使用%.16lf或%.16f并以相同的精度进行打印,那么在C90中%lf有什么问题?
因为直到后期才被标准化? – 2013-03-25 12:17:41
'%lf'对'printf'系列没有用处,只适用于'scanf'系列。 – 2013-03-25 12:20:45
可能的重复:http://stackoverflow.com/questions/6395726/how-does-printf-and-co-differentiate-beetween-float-and-double – 2013-03-25 12:22:57