int, long .. . int long ,
printf("%d",var);
, , 64 int - 32 , /, . :
printf("%ld",var);
or
printf("%d",(int)var);
, , , int % d, , .
EDIT:
, C, . printf() , , , . printf % d, , 32- , , 32- . 64- , .
unsigned long ul;
float f;
f=3.4;
ul=0x3F9DF3B612345678;
...
printf("%X %f\n",ul,f);
, endianess .., 32- , :
12345678 1.234000
. , 32 ul hex (% X) 32 ul , float (% f) f , , .
, , , /, unsigned long 32 , % X 32 , 64 , printf .
Because of this pain, compilers like gcc try to make your life better, assuming that when you use the printf () function, you use the standard C-unit and they parse your format string looking for these types of common errors.