Fixed width integer types (since C99)
목차 |
타입
|
헤더 파일에 정의됨
<stdint.h>
|
|
int8_t
int16_t
int32_t
int64_t
|
각각 정확히 8, 16, 32, 64비트 너비를 가지는 부호 있는 정수 타입
패딩 비트 없이 2의 보수법으로 음수 표현 (구현에서 해당 타입을 직접 지원하는 경우에만 제공됨) |
int_fast8_t
int_fast16_t
int_fast32_t
int_fast64_t
|
각각 최소 8, 16, 32, 64비트 너비를 가지는 가장 빠른 부호 있는 정수 타입 |
int_least8_t
int_least16_t
int_least32_t
int_least64_t
|
각각 최소 8, 16, 32, 64비트 너비를 가지는 가장 작은 부호 있는 정수 타입 |
intmax_t
|
최대 너비 정수 타입 |
intptr_t
|
포인터를 저장할 수 있는 정수 타입 |
uint8_t
uint16_t
uint32_t
uint64_t
|
각각 정확히 8, 16, 32, 64비트 너비를 가지는 부호 없는 정수 타입
(구현에서 해당 타입을 직접 지원하는 경우에만 제공됨) |
uint_fast8_t
uint_fast16_t
uint_fast32_t
uint_fast64_t
|
각각 최소 8, 16, 32, 64비트 너비를 가지는 가장 빠른 부호 없는 정수 타입 |
uint_least8_t
uint_least16_t
uint_least32_t
uint_least64_t
|
각각 최소 8, 16, 32, 64비트 너비를 가지는 가장 작은 부호 없는 정수 타입 |
uintmax_t
|
최대 너비 부호 없는 정수 타입 |
uintptr_t
|
포인터를 저장할 수 있는 부호 없는 정수 타입 |
구현체는
int
N
_t
,
int_fast
N
_t
,
int_least
N
_t
,
uint
N
_t
,
uint_fast
N
_t
, 그리고
uint_least
N
_t
와 같은 typedef 이름을
N
이 8, 16, 32 또는 64가 아닐 때 정의할 수 있습니다.
int
N
_t
형태의 typedef 이름은 구현체가 패딩 없이 해당 너비의 정수 타입을 지원할 때만 정의될 수 있습니다. 따라서
uint24_t
는 정확히 24비트 너비의 부호 없는 정수 타입을 나타냅니다.
아래에 나열된 각 매크로는 구현이 해당 typedef 이름을 정의하는 경우에만 정의됩니다. 매크로
INT
N
_C
와
UINT
N
_C
는 각각 typedef 이름
int_least
N
_t
와
uint_least
N
_t
에 대응됩니다.
매크로 상수
|
헤더 파일에 정의됨
<stdint.h>
|
|
부호 있는 정수 : 너비 |
|
|
INT8_WIDTH
INT16_WIDTH
INT32_WIDTH
INT64_WIDTH
(C23)
(optional)
|
int8_t
,
int16_t
,
int32_t
,
int64_t
타입 객체의 비트 폭 (정확히 8, 16, 32, 64)
(매크로 상수) |
|
INT_FAST8_WIDTH
INT_FAST16_WIDTH
INT_FAST32_WIDTH
INT_FAST64_WIDTH
(C23)
|
int_fast8_t
,
int_fast16_t
,
int_fast32_t
,
int_fast64_t
타입 객체의 비트 너비
(매크로 상수) |
|
INT_LEAST8_WIDTH
INT_LEAST16_WIDTH
INT_LEAST32_WIDTH
INT_LEAST64_WIDTH
(C23)
|
int_least8_t
,
int_least16_t
,
int_least32_t
,
int_least64_t
형식의 객체 비트 너비
(매크로 상수) |
|
INTPTR_WIDTH
(C23)
(optional)
|
intptr_t
타입 객체의 비트 너비
(매크로 상수) |
|
INTMAX_WIDTH
(C23)
|
intmax_t
타입 객체의 비트 너비
(매크로 상수) |
부호 있는 정수 : 최솟값 |
|
|
INT8_MIN
INT16_MIN
INT32_MIN
INT64_MIN
|
int8_t
,
int16_t
,
int32_t
,
int64_t
타입 객체의 최소값
(매크로 상수) |
|
INT_FAST8_MIN
INT_FAST16_MIN
INT_FAST32_MIN
INT_FAST64_MIN
|
int_fast8_t
,
int_fast16_t
,
int_fast32_t
,
int_fast64_t
타입 객체의 최소값
(매크로 상수) |
|
INT_LEAST8_MIN
INT_LEAST16_MIN
INT_LEAST32_MIN
INT_LEAST64_MIN
|
int_least8_t
,
int_least16_t
,
int_least32_t
,
int_least64_t
타입 객체의 최소값
(매크로 상수) |
|
INTPTR_MIN
|
intptr_t
타입 객체의 최소값
(매크로 상수) |
|
INTMAX_MIN
|
intmax_t
타입 객체의 최소값
(매크로 상수) |
부호 있는 정수 : 최댓값 |
|
|
INT8_MAX
INT16_MAX
INT32_MAX
INT64_MAX
|
int8_t
,
int16_t
,
int32_t
,
int64_t
타입 객체의 최댓값
(매크로 상수) |
|
INT_FAST8_MAX
INT_FAST16_MAX
INT_FAST32_MAX
INT_FAST64_MAX
|
int_fast8_t
,
int_fast16_t
,
int_fast32_t
,
int_fast64_t
타입 객체의 최댓값
(매크로 상수) |
|
INT_LEAST8_MAX
INT_LEAST16_MAX
INT_LEAST32_MAX
INT_LEAST64_MAX
|
int_least8_t
,
int_least16_t
,
int_least32_t
,
int_least64_t
형식 객체의 최대값
(매크로 상수) |
|
INTPTR_MAX
|
intptr_t
타입 객체의 최댓값
(매크로 상수) |
|
INTMAX_MAX
|
intmax_t
타입 객체의 최댓값
(매크로 상수) |
부호 없는 정수 : 너비 |
|
|
UINT8_WIDTH
UINT16_WIDTH
UINT32_WIDTH
UINT64_WIDTH
(C23)
(optional)
|
uint8_t
,
uint16_t
,
uint32_t
,
uint64_t
타입 객체의 비트 폭
(정확히 8, 16, 32, 64)
(매크로 상수) |
|
UINT_FAST8_WIDTH
UINT_FAST16_WIDTH
UINT_FAST32_WIDTH
UINT_FAST64_WIDTH
(C23)
|
uint_fast8_t
,
uint_fast16_t
,
uint_fast32_t
,
uint_fast64_t
타입 객체의 비트 너비
(매크로 상수) |
|
UINT_LEAST8_WIDTH
UINT_LEAST16_WIDTH
UINT_LEAST32_WIDTH
UINT_LEAST64_WIDTH
(C23)
|
uint_least8_t
,
uint_least16_t
,
uint_least32_t
,
uint_least64_t
타입 객체의 비트 너비
(매크로 상수) |
|
UINTPTR_WIDTH
(C23)
(optional)
|
uintptr_t
타입 객체의 비트 너비
(매크로 상수) |
|
UINTMAX_WIDTH
(C23)
|
uintmax_t
타입 객체의 비트 너비
(매크로 상수) |
부호 없는 정수 : 최댓값 |
|
|
UINT8_MAX
UINT16_MAX
UINT32_MAX
UINT64_MAX
|
uint8_t
,
uint16_t
,
uint32_t
,
uint64_t
타입 객체의 최대값
(매크로 상수) |
|
UINT_FAST8_MAX
UINT_FAST16_MAX
UINT_FAST32_MAX
UINT_FAST64_MAX
|
uint_fast8_t
,
uint_fast16_t
,
uint_fast32_t
,
uint_fast64_t
타입 객체의 최댓값
(매크로 상수) |
|
UINT_LEAST8_MAX
UINT_LEAST16_MAX
UINT_LEAST32_MAX
UINT_LEAST64_MAX
|
uint_least8_t
,
uint_least16_t
,
uint_least32_t
,
uint_least64_t
타입 객체의 최댓값
(매크로 상수) |
|
UINTPTR_MAX
|
uintptr_t
타입 객체의 최댓값
(매크로 상수) |
|
UINTMAX_MAX
|
uintmax_t
타입 객체의 최댓값
(매크로 상수) |
최소 너비 정수 상수를 위한 함수 매크로
|
INT8_C
INT16_C
INT32_C
INT64_C
|
인수로 지정된 값을 가지며 각각
int_least8_t
,
int_least16_t
,
int_least32_t
,
int_least64_t
타입을 갖는 정수 상수 표현식으로 확장됨
(함수 매크로) |
|
INTMAX_C
|
인수로 지정된 값을 가지며
intmax_t
타입을 갖는 정수 상수 표현식으로 확장됨
(함수 매크로) |
|
UINT8_C
UINT16_C
UINT32_C
UINT64_C
|
인수로 지정된 값을 가지며 각각
uint_least8_t
,
uint_least16_t
,
uint_least32_t
,
uint_least64_t
타입을 갖는 정수 상수 표현식으로 확장됨
(함수 매크로) |
|
UINTMAX_C
|
인수로 지정된 값을 가지며
uintmax_t
타입을 갖는 정수 상수 표현식으로 확장됨
(함수 매크로) |
#include <stdint.h> UINT64_C(0x123) // 0x123ULL 또는 0x123UL로 확장될 수 있음
형식 매크로 상수
|
헤더 파일에 정의됨
<inttypes.h>
|
fprintf 함수군을 위한 fprintf 형식 상수
여기에 나열된 각
PRI
매크로는 구현이 해당 typedef 이름을 정의하는 경우에만 정의됩니다.
|
int
또는
unsigned int 에 대한 동등 표현 |
설명 | 자료형 매크로 | ||||
|---|---|---|---|---|---|---|
[u]int
x
_t
|
[u]int_least
x
_t
|
[u]int_fast
x
_t
|
[u]intmax_t
|
[u]intptr_t
|
||
d
|
부호 있는 10진 정수 값 출력 | PRId x | PRIdLEAST x | PRIdFAST x | PRIdMAX | PRIdPTR |
i
|
PRIi x | PRIiLEAST x | PRIiFAST x | PRIiMAX | PRIiPTR | |
u
|
부호 없는 10진 정수 값 출력 | PRIu x | PRIuLEAST x | PRIuFAST x | PRIuMAX | PRIuPTR |
o
|
부호 없는 8진 정수 값 출력 | PRIo x | PRIoLEAST x | PRIoFAST x | PRIoMAX | PRIoPTR |
x
|
부호 없는 소문자 16진 정수 값 출력 | PRIx x | PRIxLEAST x | PRIxFAST x | PRIxMAX | PRIxPTR |
X
|
부호 없는 대문자 16진 정수 값 출력 | PRIX x | PRIXLEAST x | PRIXFAST x | PRIXMAX | PRIXPTR |
fscanf 함수 계열을 위한 형식 상수
여기에 나열된 각
SCN
매크로는 구현이 해당 typedef 이름을 정의하고 해당 타입에 적합한
fscanf
길이 수식자를 가질 경우에만 정의됩니다.
|
int
또는
unsigned int 에 대한 동등 매크로 |
설명 | 데이터 타입 매크로 | ||||
|---|---|---|---|---|---|---|
[u]int
x
_t
|
[u]int_least
x
_t
|
[u]int_fast
x
_t
|
[u]intmax_t
|
[u]intptr_t
|
||
d
|
부호 있는 10진 정수 값 입력 | SCNd x | SCNdLEAST x | SCNdFAST x | SCNdMAX | SCNdPTR |
i
|
부호 있는 정수 값 입력 (진법은 파싱된 첫 문자에 의해 결정됨) | SCNi x | SCNiLEAST x | SCNiFAST x | SCNiMAX | SCNiPTR |
u
|
부호 없는 10진 정수 값 입력 | SCNu x | SCNuLEAST x | SCNuFAST x | SCNuMAX | SCNuPTR |
o
|
부호 없는 8진 정수 값 입력 | SCNo x | SCNoLEAST x | SCNoFAST x | SCNoMAX | SCNoPTR |
x
|
부호 없는 16진 정수 값 입력 | SCNx x | SCNxLEAST x | SCNxFAST x | SCNxMAX | SCNxPTR |
예제
참고: C++ 호환성 참고 사항 (이 예제에서 사용된 형식 매크로 앞의 공백에 관한 내용)
가능한 출력:
8 lld -9223372036854775808 +9223372036854775807 +7
참고문헌
- C23 표준 (ISO/IEC 9899:2024):
-
- 7.8.1 형식 지정자용 매크로 (p: TBD)
-
- 7.18 정수형 <stdint.h> (p: TBD)
- C17 표준 (ISO/IEC 9899:2018):
-
- 7.8.1 형식 지정자 매크로 (p: 158-159)
-
- 7.18 정수형 <stdint.h> (p: 212-216)
- C11 표준 (ISO/IEC 9899:2011):
-
- 7.8.1 형식 지정자 매크로 (p: 217-218)
-
- 7.18 정수형 타입 <stdint.h> (p: 289-295)
- C99 표준 (ISO/IEC 9899:1999):
-
- 7.8.1 형식 지정자 매크로 (p: 198-199)
-
- 7.18 정수형 <stdint.h> (p: 255-261)
참고 항목
|
C++ documentation
for
Fixed width integer types
|
|
|
C++ documentation
for
User-defined literals (
formatting macros note
)
|