3.1416
Invalid conversion in printf: "%f" at - line 3.
%4.4lf
Invalid conversion in printf: "%f" at - line 4.
%4.4hf
Invalid conversion in printf: "%q" at - line 5.
%4.4qf
3.1416
3.1416
####
l interpret integer as C type "long" or "unsigned long"
h interpret integer as C type "short" or "unsigned short"
q, L or ll interpret integer as C type "long long" or "unsigned long long"
(if your platform supports such a type, else it is an error)
####
h A following integer conversion corresponds to a
short int or unsigned short int argument, or a fol
lowing n conversion corresponds to a pointer to a
short int argument.
l (ell) A following integer conversion corresponds to
a long int or unsigned long int argument, or a fol
lowing n conversion corresponds to a pointer to a
long int argument, or a following c conversion cor
responds to a wint_t argument, or a following s
conversion corresponds to a pointer to wchar_t
argument.
ll (ell-ell). A following integer conversion corre
sponds to a long long int or unsigned long long int
argument, or a following n conversion corresponds
to a pointer to a long long int argument.
L A following a, A, e, E, f, F, g, or G conversion
corresponds to a long double argument. (C99 allows
%LF, but SUSv2 does not.)
q (`quad'. BSD 4.4 and Linux libc5 only. Don't use.)
This is a synonym for ll.