[c] uint32, int32, uint64, int64와 같은 유형이 stdlib 헤더에 정의되어 있습니까?

나는 종종 uint32, uint64와 같은 유형을 사용하는 소스 코드를보고, 프로그래머가 애플리케이션 코드에서 정의해야하는지 아니면 표준 lib 헤더에서 정의해야하는지 궁금합니다.

내 애플리케이션 소스 코드에 이러한 유형을 포함하는 가장 좋은 방법은 무엇입니까?



답변

C99 stdint.h는 다음을 정의합니다.

  • int8_t
  • int16_t
  • int32_t
  • uint8_t
  • uint16_t
  • uint32_t

그리고 아키텍처가 지원하는 경우 :

  • int64_t
  • uint64_t

다른 다양한 정수 typedef stdint.h도 있습니다.

C99 환경없이 멈춘다면 아마도 고유 한 typedef를 제공하고 어쨌든 C99를 사용해야합니다.

uint32하고 uint64(즉,없는 _t접미사) 아마 응용 프로그램에만 적용됩니다.


답변

이러한 정수 유형은 모두 stdint.h


답변

C99를 사용하는 경우 stdint.h. BTW, 프로세서가 지원하는 경우 64 비트 유형이 있습니다.


답변

질문자는 실제로 int16_t (등)보다는 int16 (등)에 대해 물었습니다.

표준 헤더는 없으며 “_t”없이 정의하는 Linux의 / usr / include / 폴더도 없습니다.


답변