64비트 프로세서의 경우 uint16_t와 unsigned short int의 차이점은 무엇입니까?
저는 유형의 변수를 사용하게 되었습니다.uint16_t
, 하지만 제 프로젝트의 한계로 인해 해당 데이터 유형을 사용할 수 없습니다.가능한가요?unsigned short int
대신에uint16_t
? 저는 그 둘의 차이점을 모릅니다.누가 좀 설명해 주시겠습니까?
uint16_t
는 부호가 없는 16비트 정수입니다.
unsigned short int
는 부호가 없는 짧은 정수이지만 크기는 구현에 따라 다릅니다.표준에는 최소 16비트(즉, 최소 값)라고만 나와 있습니다.UINT_MAX
가65535
). 실제로는 보통 16비트이지만, 그것을 장담할 수는 없습니다.
참고:
- 휴대용 부호 없는 16비트 정수를 원한다면,
uint16_t
. inttypes.h
그리고.stdint.h
둘 다 C99에 소개되어 있습니다.C89를 사용하는 경우 자신의 유형을 정의합니다.uint16_t
특정 구현에서 제공되지 않을 수도 있습니다(아래 참조).unsigned short int
언제든지 사용할 수 있습니다.
참조 : C11(ISO/IEC 9899:201x) §7.20 정수형
구현이 제공하는 본 명세서에 기술된 각 유형에 대해) 유형 이름을 선언하고 관련 매크로를 정의해야 합니다.반대로, 구현이 제공하지 않는 본 명세서에 기술된 각 형식에 대해서는 해당 형식 ef 이름을 선언하거나 관련 매크로를 정의해서는 안 됩니다.구현은 "필수"로 설명되는 유형을 제공해야 하지만, 다른 유형을 제공할 필요는 없습니다("선택"으로 설명됨).
uint16_t
16비트 크기의 부호 없는 정수가 보장됩니다.
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
'programing' 카테고리의 다른 글
우커머스 수동으로 주문 추가:ajax 호출에서 제품을 필터링하는 방법 (0) | 2023.10.11 |
---|---|
input_event structure description (linux/input에서).h) (0) | 2023.10.11 |
파워셸 베이스64 vs 일반 베이스64 (0) | 2023.10.11 |
Oracle 기능의 전월 마지막 날 가져오기 (0) | 2023.10.11 |
연결되는 아키텍처가 아닌 아카이브를 위해 파일이 만들어졌습니다(i386). (0) | 2023.10.11 |