unsigned long
C로 데이터 유형 을 인쇄하는 방법을 이해할 수 없습니다 .
이 있다고 가정 unsigned_foo
하면 unsigned long
다음을 시도합니다.
printf("%lu\n", unsigned_foo)
printf("%du\n", unsigned_foo)
printf("%ud\n", unsigned_foo)
printf("%ll\n", unsigned_foo)
printf("%ld\n", unsigned_foo)
printf("%dl\n", unsigned_foo)
그리고 그들 모두는 내가 가지고있는 -123123123
것 대신 어떤 종류의 숫자를 인쇄 unsigned long
합니다.
답변
%lu
에 대한 올바른 형식입니다 unsigned long
. 메모리 손상이나 초기화되지 않은 변수와 같은 다른 문제가 있습니다. 아마도 우리에게 더 큰 그림을 보여줄까요?
답변
%lu
에 대한 부호없는 긴%llu
에 대한 부호 오래 오래
답변
대한 INT %d
대한 긴 INT %ld
들어 오래 오래 INT %lld
대한 부호 없음 long long int와 %llu
답변
모든 조합 중 당신이 시도 %ld
하고 %lu
모두에서 유효한의 printf 형식 지정자있는 유일한 사람입니다. %lu
(부호없는 10 진수) %lx
또는 %lX
(소문자 또는 대문자가있는 긴 16 %lo
진수) 및 (8 진수)는 unsigned long 유형의 변수에 유효한 형식 지정자입니다 (물론 필드 사이에 필드 너비, 정밀도 등을 추가 할 수 있음) %
과 l
).