Inttypes.h
Jump to navigation
Jump to search
Overview
inttypes.h 내용 정리
Basic
한번씩 intmax_t 과 같은 형식의 선언을 볼 수 있다.
사용에는 큰 문제가 없으나, 이를 printf 와 같은 함수로 표현할 때 문제가 발생한다. 시스템(아키텍쳐)에 따라서 타입이 바뀌기 때문이다.
예를 들어 라즈베리 파이 3에서는 intmax_t 는 long long int 로 표현된다. 하지만 intel 프로세서 에서는 intmax_t 는 long int 로 표현된다.
이를 위해서 inttypes.h 헤더 에서는 특별한 핸들링 매크로를 제공한다.
Macros
intmax_t 와 같은 특별한 타입들을 위한 매크로 정의 모음
decimal notation
<source lang=c> /* Decimal notation. */
- define PRId8 "d"
- define PRId16 "d"
- define PRId32 "d"
- define PRId64 __PRI64_PREFIX "d"
- define PRIdLEAST8 "d"
- define PRIdLEAST16 "d"
- define PRIdLEAST32 "d"
- define PRIdLEAST64 __PRI64_PREFIX "d"
- define PRIdFAST8 "d"
- define PRIdFAST16 __PRIPTR_PREFIX "d"
- define PRIdFAST32 __PRIPTR_PREFIX "d"
- define PRIdFAST64 __PRI64_PREFIX "d"
- define PRIi8 "i"
- define PRIi16 "i"
- define PRIi32 "i"
- define PRIi64 __PRI64_PREFIX "i"
- define PRIiLEAST8 "i"
- define PRIiLEAST16 "i"
- define PRIiLEAST32 "i"
- define PRIiLEAST64 __PRI64_PREFIX "i"
- define PRIiFAST8 "i"
- define PRIiFAST16 __PRIPTR_PREFIX "i"
- define PRIiFAST32 __PRIPTR_PREFIX "i"
- define PRIiFAST64 __PRI64_PREFIX "i"
/* Octal notation. */
- define PRIo8 "o"
- define PRIo16 "o"
- define PRIo32 "o"
- define PRIo64 __PRI64_PREFIX "o"
- define PRIoLEAST8 "o"
- define PRIoLEAST16 "o"
- define PRIoLEAST32 "o"
- define PRIoLEAST64 __PRI64_PREFIX "o"
- define PRIoFAST8 "o"
- define PRIoFAST16 __PRIPTR_PREFIX "o"
- define PRIoFAST32 __PRIPTR_PREFIX "o"
- define PRIoFAST64 __PRI64_PREFIX "o"
</source>
unsigned integer
<source lang=c> /* Unsigned integers. */
- define PRIu8 "u"
- define PRIu16 "u"
- define PRIu32 "u"
- define PRIu64 __PRI64_PREFIX "u"
- define PRIuLEAST8 "u"
- define PRIuLEAST16 "u"
- define PRIuLEAST32 "u"
- define PRIuLEAST64 __PRI64_PREFIX "u"
- define PRIuFAST8 "u"
- define PRIuFAST16 __PRIPTR_PREFIX "u"
- define PRIuFAST32 __PRIPTR_PREFIX "u"
- define PRIuFAST64 __PRI64_PREFIX "u"
</source>
intmax_t/uintmax_t
<source lang=c> /* Macros for printing `intmax_t' and `uintmax_t'. */
- define PRIdMAX __PRI64_PREFIX "d"
- define PRIiMAX __PRI64_PREFIX "i"
- define PRIoMAX __PRI64_PREFIX "o"
- define PRIuMAX __PRI64_PREFIX "u"
- define PRIxMAX __PRI64_PREFIX "x"
- define PRIXMAX __PRI64_PREFIX "X"
</source>