source

uint_fast32_t는 무엇이며 일반 int 및 uint32_t 대신 사용해야 하는 이유는 무엇입니까?

gigabyte 2022. 7. 17. 16:45
반응형

uint_fast32_t는 무엇이며 일반 int 및 uint32_t 대신 사용해야 하는 이유는 무엇입니까?

그래서 그 이유는typedef:ed 원시 데이터 유형은 낮은 수준의 표현을 추상화하여 이해하기 쉽게 하는 것입니다.uint64_t대신long long8 바이트)를 지정합니다.

단, 있습니다.uint_fast32_t같은 것을 가지고 있다typedef~하듯이uint32_t. "빠른" 버전을 사용하면 프로그램이 더 빨라집니까?

  • int플랫폼에 따라서는 16비트까지 작을 수 있습니다.당신의 지원에는 충분하지 않을 수 있습니다.
  • uint32_t가 존재한다고는 보증되지 않습니다.옵션입니다.typedef32비트의 부호 없는 정수 타입을 가진 경우 구현에서 제공해야 합니다.예를 들어 9비트의 바이트를 가진 것도 있기 때문에uint32_t.
  • uint_fast32_t의향을 명확하게 나타냅니다.최소 32비트의 타입으로 퍼포먼스의 관점에서 최적인 것입니다. uint_fast32_t실제로는 64비트 길이일 수 있습니다.구현에 달려 있습니다.

...있어uint_fast32_ttypedef와 같은 typedef를 가지고 있습니다.uint32_t...

당신이 보고 있는 것은 표준이 아닙니다.특정 구현(BlackBerry)입니다.그래서 당신은 거기서 추론할 수 없다.uint_fast32_t항상 똑같다uint32_t.

다음 항목도 참조하십시오.

차이점은 정확성과 가용성에 있습니다.

여기 의사 선생님 말씀:

각각 정확히 8, 16, 32 및 64비트 너비의 부호 없는 정수형(실장이 해당 유형을 직접 지원하는 경우에만 제공):

uint8_t
uint16_t
uint32_t
uint64_t

그리고.

각각 최소 8, 16, 32 및 64비트의 너비를 가진 가장 빠른 부호 없는 정수형

uint_fast8_t
uint_fast16_t
uint_fast32_t
uint_fast64_t    

그래서 그 차이는 거의 명백하다.uint32_t 타입은 정확하게 32bits, 그리고 실장에서는 32비트의 타입을 가지고 있고, 그 타입을 다음과 같이 정의할 수 있는 경우에만 그 타입을 제공해야 합니다.uint32_t그러니까...uint32_t사용할 수도 있고 사용할 수도 없습니다.

반면에,uint_fast32_t최소 32비트를 가진 타입입니다.즉, 구현이 typedef를 지정할 수 있습니다.uint32_t~하듯이uint_fast32_t 그것이 제공된다면uint32_t제공이 되지 않는 경우uint32_t,그리고나서uint_fast32_t적어도 다음을 포함하는 타입의 typedef일 수 있습니다.32비트를 클릭합니다.

패스트 버전은 32비트보다 클 수 있습니다.fast int는 레지스터에 잘 맞고 정렬도 되지만 메모리를 더 많이 사용합니다.이러한 어레이가 큰 경우 메모리 캐시 적중과 대역폭이 증가하므로 프로그램 속도가 느려집니다.

일반적으로 로드 명령 중에 32~64비트의 부호가 확장될 수 있고 더 빠른 '네이티브' 정수 형식이 있다는 생각은 구식이기 때문에 최신 CPU는 fast_int32의 혜택을 받지 못할 것이라고 생각합니다.

언제#include inttypes.h프로그램에서 정수를 표현하는 다양한 방법을 사용할 수 있습니다.

uint_fast*_t 타입은 단순히 특정 비트수를 나타내는 가장 빠른 타입을 정의합니다.

이렇게 생각해 보세요.유형의 변수를 정의합니다.short프로그램에서 여러 번 사용하는 것은 완전히 유효합니다.다만, 사용하고 있는 시스템은, 타입의 값으로 동작하는 것이 고속인 경우가 있습니다.int변수를 유형으로 정의함으로써uint_fast*t컴퓨터는 단순히 사용할 수 있는 가장 효율적인 표현을 선택한다.

이러한 표현 사이에 차이가 없는 경우 시스템은 원하는 표현 중 하나를 선택하여 지속적으로 사용합니다.

언급URL : https://stackoverflow.com/questions/8500677/what-is-uint-fast32-t-and-why-should-it-be-used-instead-of-the-regular-int-and-u

반응형