it-source

C: printf에서 ptrdiff_t에 어떤 문자를 사용해야 합니까?

criticalcode 2023. 7. 25. 21:05
반응형

C: printf에서 ptrdiff_t에 어떤 문자를 사용해야 합니까?

어떤 문자를 사용해야 합니까?ptrdiff_tprintf?

C 표준이 인쇄 방법을 명확하게 설명합니까?ptrdiff_tprintf아무도 못 찾았어요

int a = 1;
int b = 2;

int* pa = &a;
int* pb = &b;

ptrdiff_t diff = b - a;

printf("diff = %?", diff); // % what?

그건…%td여기 보세요.

C11 초안은 다음에 대한 길이 수정자를 설명합니다.ptrdiff_t7.21.6.17 "그fprintf함수"

t
다음 항목을 지정합니다.d,i,o,u,x또는X변환 지정자가 에 적용됩니다.ptrdiff_t또는 해당하는 부호 없는 정수 유형 인수 또는 다음과 같은 인수n변환 지정자는 에 대한 포인터에 적용됩니다.ptrdiff_t논쟁.

사용하다"%td"다음과 같이: 신용: @trojanfoe.

ptrdiff_t diff = b - a;
printf("diff = %td", diff);

컴파일러가 지원하지 않는 경우 서명된 형식으로 캐스팅합니다. 길수록 좋습니다.그런 다음 대체 형식과 인수가 일치하는지 확인합니다.

// Note the cast
printf("diff = %lld", (long long) diff); // or
printf("diff = %ld", (long) diff);

참조 형식 지정자

사용하다%td그리고 만약 당신의 컴파일러가 그것을 지원하지 않는다면, 당신은 시도해야 합니다.%ld(또한 입력을 에 캐스팅합니다.long).

언급URL : https://stackoverflow.com/questions/7954439/c-which-character-should-be-used-for-ptrdiff-t-in-printf

반응형