我是一名初學者編程的學生,只是想了解背後的原因。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