programing

64비트 프로세서의 경우 uint16_t와 unsigned short int의 차이점은 무엇입니까?

megabox 2023. 10. 11. 20:36
반응형

64비트 프로세서의 경우 uint16_t와 unsigned short int의 차이점은 무엇입니까?

저는 유형의 변수를 사용하게 되었습니다.uint16_t, 하지만 제 프로젝트의 한계로 인해 해당 데이터 유형을 사용할 수 없습니다.가능한가요?unsigned short int대신에uint16_t? 저는 그 둘의 차이점을 모릅니다.누가 좀 설명해 주시겠습니까?

uint16_t는 부호가 없는 16비트 정수입니다.

unsigned short int는 부호가 없는 짧은 정수이지만 크기는 구현에 따라 다릅니다.표준에는 최소 16비트(즉, 최소 값)라고만 나와 있습니다.UINT_MAX65535). 실제로는 보통 16비트이지만, 그것을 장담할 수는 없습니다.

참고:

  1. 휴대용 부호 없는 16비트 정수를 원한다면,uint16_t.
  2. inttypes.h그리고.stdint.h둘 다 C99에 소개되어 있습니다.C89를 사용하는 경우 자신의 유형을 정의합니다.
  3. uint16_t특정 구현에서 제공되지 않을 수도 있습니다(아래 참조).unsigned short int언제든지 사용할 수 있습니다.

참조 : C11(ISO/IEC 9899:201x) §7.20 정수형

구현이 제공하는 본 명세서에 기술된 각 유형에 대해) 유형 이름을 선언하고 관련 매크로를 정의해야 합니다.반대로, 구현이 제공하지 않는 본 명세서에 기술된 각 형식에 대해서는 해당 형식 ef 이름을 선언하거나 관련 매크로를 정의해서는 안 됩니다.구현은 "필수"로 설명되는 유형을 제공해야 하지만, 다른 유형을 제공할 필요는 없습니다("선택"으로 설명됨).

uint16_t16비트 크기의 부호 없는 정수가 보장됩니다.

unsigned short int서명되지 않은 것으로 보장됩니다.short integer,어디에short integer는 현재 사용 중인 컴파일러(및 잠재적으로 컴파일러 플래그)에 의해 정의됩니다.x86 하드웨어를 위한 대부분의 컴파일러의 경우 ashort integer크기가 16비트입니다.

또한 ANSIC 표준에 따라 16비트의 최소 크기만 정의되며, 최대 크기는 컴파일러의 개발자의 몫입니다.

최소 형식 한계

표준을 준수하는 컴파일러는 특정 유형이 수용할 수 있는 값의 범위와 관련하여 다음과 같은 제한을 준수해야 합니다.이들은 하한선임에 유의하십시오. 구현은 이들 중 일부 또는 전부를 자유롭게 초과할 수 있습니다.또한 문자의 최소 범위는 문자가 서명된 것으로 간주되는지 또는 서명되지 않은 것으로 간주되는지 여부에 따라 달라집니다.

유형 최소 범위

signed char     -127 to +127
unsigned char      0 to 255
short int     -32767 to +32767
unsigned short int 0 to 65535

언급URL : https://stackoverflow.com/questions/17693445/what-is-the-difference-between-uint16-t-and-unsigned-short-int-incase-of-64-bit

반응형