최상의 답변
C에는 많은 형식 지정자가 있습니다. 분명히 각 유형에 대해 하나가 존재하지만 프로그래머가 몇 가지 다른 표현으로 특정 유형의 변수를 표시 할 수 있도록 다른 유형이 존재합니다. 예를 들어 \% d 는 정수를 인쇄합니다. 그러나 \% x를 사용하여 동일한 정수를 16 진수로 표시 할 수도 있습니다. 그럼에도 불구하고 모든 원래 C 형식 지정자의 목록은 다음에서 찾을 수 있습니다. C 프로그래밍의 모든 형식 지정자 목록-Codeforwin
그러나 다음과 관련된 C 코드 작성에보다 현대적인 접근 방식을 사용하는 것이 좋습니다. 변수를 선언하고 적절하게 표시합니다. 이는
출처 : How to C (2016 년 기준)
-
int8\_t
,int16\_t
,int32\_t
,int64\_t
-부호있는 정수 -
uint8\_t
,uint16\_t
,uint32\_t
,uint64\_t
-부호없는 정수 -
float
-표준 32 비트 부동 포인트 -
double
-표준 64 비트 부동 소수점 -
intptr\_t, uintptr\_t, ptrdiff\_t
마지막 글 머리 기호에는 포인터 산술에 사용할 수있는 유형이 포함되어 있습니다.
이제 이러한 유형을 표시하는 적절한 방법은 다음과 같습니다.
-
size\_t
–\%zu
-
ssize\_t
–\%zd
-
ptrdiff\_t
–\%td
- 원시 포인트 r 값-
\%p
(최신 컴파일러에서 16 진수를 인쇄합니다. 포인터를(void *)
로 캐스트) -
int64\_t
–"\%" PRId64
-
uint64\_t
–"\%" PRIu64
64 비트 유형은PRI[udixXo]64
스타일 매크로. 왜? 일부 플랫폼에서는 64 비트 값이long
이고 다른 플랫폼에서는 “long long
입니다. 이러한 매크로는 전체적으로 적절한 기본 형식 사양을 제공합니다. 이러한 형식 매크로없이 올바른 크로스 플랫폼 형식 문자열을 지정하는 것은 실제로 불가능합니다. 형식이 사용자 아래에서 변경되기 때문입니다 (인쇄하기 전에 값을 캐스팅하는 것은 안전하거나 논리적이지 않음). -
intptr\_t
—"\%" PRIdPTR
-
uintptr\_t
—"\%" PRIuPTR
-
intmax\_t
—"\%" PRIdMAX
-
uintmax\_t
—"\%" PRIuMAX
다음 유형 중 하나를 인쇄하는 예 :
printf("Local number: \%" PRIdPTR "\n\n", someIntPtr);
PRIdPTR 은 인용 부호 밖에 있지만 퍼센트 기호 바로 뒤에 있습니다. 구문 상 다소 성가신 참 으로요.
어쨌든이 정보가 당신의 화장실에 대한 대부분의 답변이 되었기를 바랍니다. 왕. 데이터 유형과 관련하여보다 현대적인 방식으로 C를 사용하고 특수 형식 지정자를 통해 표시하는 방법에 대해 제공된 정보는 How to C (2016 년 기준)