#include <stdio.h>
int main(void)
{
float n1=3.0;
double n2=3.0;
long n3 = 2000000000;
long n4= 1234567890;
printf("%.1e %.1e %.1e %.1e\n",n1,n2,n3,n4);
printf("%ld %ld\n",n3,n4);
printf("%ld %ld %ld %ld \n",n1,n2,n3,n4);
return 0;
}
책에서는 %e 지정자는 printf()에게 double형 값(저자의 시스템에서 8바이트 값)을 기대하게 만든다.
라고 되어 있는데 그러면 %e는 8바이트가 필요해서 바뀐다는 말인가요?
그러면 %ld에는 왜 8바이트가 되는 건가요?
그리고 이건 욕심이지만 마지막줄 %ld는 4바이트씩 차지해서 첫번째 %ld는 앞에 4바이트 두번쨰 %d는 뒤에 4바이트 해서
출력할때는 0 1074266112 0 1074266112 가 나오는데 이건 첫번째 priintf() n3,n4 처럼 오류
겠죠?
잘 안 읽어봤지만 아무튼 printf 스펙임 ㅅㄱ