ISO / IEC 9899 : 2018 (C18)에서 7.20.1.3에 명시되어 있습니다.
7.20.1.3 가장 빠른 최소 너비 정수 유형
1 다음 유형 각각은 적어도 지정된 너비를 갖는 모든 정수 유형 중에서 작동하기 위해 일반적으로 가장 빠른 정수 유형 ( 268) 을 지정합니다.
2 typedef 이름
int_fastN_t
은 최소 N의uint_fastN_t
너비를 가진 가장 빠른 부호있는 정수 유형을 지정합니다 . typedef 이름은 최소 N의 너비를 가진 가장 빠른 부호없는 정수 유형을 지정합니다.3 다음 유형이 필요합니다.
int_fast8_t
,int_fast16_t
,int_fast32_t
,int_fast64_t
,uint_fast8_t
,uint_fast16_t
,uint_fast32_t
,uint_fast64_t
이 양식의 다른 모든 유형은 선택 사항입니다.
268) 지정된 유형이 모든 목적을 위해 가장 빠른 것은 아닙니다. 구현이 한 유형을 다른 유형보다 선택하기위한 명확한 근거가 없다면 서명 및 너비 요구 사항을 충족시키는 정수 유형을 선택합니다.
그러나 이러한 "빠른"정수 유형이 더 빠른 이유는 설명되어 있지 않습니다.
- 이 빠른 정수 유형이 다른 정수 유형보다 빠른 이유는 무엇입니까?
빠른 정수 유형은 C ++ 17의 헤더 파일에서도 사용할 수 있기 때문에 질문에 C ++로 태그를 지정했습니다 cstdint
. 불행히도 ISO / IEC 14882 : 2017 (C ++ 17)에는 설명에 대한 섹션이 없습니다. 나는 그 부분을 질문의 본문에서 다르게 구현했다.
정보 : C에서는 헤더 파일에 선언되어 stdint.h
있습니다.
typedef
진술 일뿐 입니다. 따라서 일반적으로 표준 라이브러리 수준에서 수행됩니다. 그들이 무엇에 물론, C 표준 풋 진짜 제한 typedef
때문에 예를 들어 전형적인 구현하는 것입니다 -에 의를 32 비트 시스템에 있지만, 가상의 컴파일러 수있는 예를 들어 구현 고유 유형을 일부 공상을 다할 것을 약속 해당 유형의 변수에 대해 사례별로 가장 빠른 시스템 유형을 선택하는 최적화 기능이 라이브러리에 적합 합니다. int_fast32_t
typedef
int
__int_fast
typedef