작성
·
194
0
#include
#include
#include
int main(void)
{
long long ll = 12345678908642LL;
printf("long long = %lld, %hd, %llu\n", ll, ll, ll);
return 0;
}
%llu 인 format specifier의 범위안에 ll 이 정의되어 있는데 다르게 출력되는지 궁금합니다.
답변 1
0
안녕하세요?
printf 함수는 printf("%hd, %llu", ll, ll); 으로 출력을 해주면 longlong의 8byte가
%hd에 2byte가 들어가고 나머지 6byte는 llu로 들어갑니다.
llu의 나머지 2byte는 뒤쪽의 ll에서 가져오게됩니다. 때문에 값이 다르게 출력됩니다.