Tôi là sinh viên lập trình mới bắt đầu, chỉ muốn tìm hiểu lý do đằng sau điều này.C90 không cho phép% lf sử dụng trong printf, tại sao?
Khi tôi sử dụng mã này:
#include <stdio.h>
int main()
{
double pi = 3.1415926535897932;
printf("%lf",pi);
return 0;
}
trình biên dịch cung cấp cho cảnh báo này. ISO C90 không hỗ trợ 'lf%' định dạng gnu_printf [-Wformat]
tôi sử dụng trình biên dịch gcc trong terminal ubuntu với (-o Wall -ansi -pedantic-lỗi)
lý do đằng sau là gì điều này? Tôi đã tìm kiếm trên web và thấy rằng việc sử dụng này được cho phép trong C99. Tại sao C90 không cho phép% lf sử dụng trong printf? Tôi có thể sử dụng% .16lf hoặc% .16f và cả hai bản in với cùng độ chính xác, vậy vấn đề gì khiến% lf kém trong C90?
Vì nó không được chuẩn hóa cho đến sau này? –
'% lf' không sử dụng cho gia đình' printf', chỉ dành cho họ 'scanf'. –
Có thể trùng lặp: http://stackoverflow.com/questions/6395726/how-does-printf-and-co-differentiate-beetween-float-and-double –