intmax_t는 size_t 최대 십진수를 유지할 수 있습니까? 그리고 printf ("% zjd", x)를 쓰는 경우)에 가장 큰 우선 순위를 갖는 uintmax_t/intmax_t 또는 size_t의 크기 유형은 무엇입니까?intmax_t는 size_t를 유지할 수 있습니까?
0
A
답변
2
대부분의 경우는하지
모두 구현 다릅니다.
size_t
은 (일반적으로) 주어진 CPU의 레지스터에 들어갈 수있는 최대 가능한 비트 수를 나타내는 부호없는 정수입니다. 현실에서는 그게 꼭 보장되는 것은 아니지만, 나는 이것이 사실이 아닌 경우를 발견하지 못했습니다.
intmax_t
은 부호있는 정수입니다. 즉, size_t
이 보유 할 수있는 값을 저장하는 데 필요한 비트가있을 수 있지만 큰 값은 같은 것을 의미하지는 않습니다. size_t
이 보유 할 수있는 최대 값은 intmax_t
으로 해석 될 때 음의 정수가 될 가능성이 큽니다.
0
- 아니요,
size_t
은 서명되어 있지 않으므로 1 비트가 손실 될 수 있습니다. printf()
의 작동 방식을 이해할 수 없다고 생각 되겠지만 "선택적인 길이 수정 기호"를 사용할 수는 있지만 둘 이상은 아닙니다. 이 답변 정말 불가능하므로
+0
printf 함수의 복사본을 작성하려고합니다. stdio.h-printf에 문자열에 size-type mod가 두 개 이상있는 경우 "size priority handling"이 표시됩니다. – EmanRuoy
"우선 순위"란 무엇을 의미합니까? –
우선 순위는 "처리 우선 순위"를 의미합니다. 크기 유형 지정자 – EmanRuoy
'% zjd '가 정의되지 않은 동작으로 이어질 것으로 생각됩니다. –