int32, int, int32_t, int8 및 int8_t의 차이점
int32_t
최근에 C 프로그램에서 데이터 유형 을 발견했습니다. 나는 32 비트를 저장하는 것을 계획하고, int
와 int32
동일한 작업을 수행합니까?
또한 char
프로그램에서 사용하고 싶습니다 . int8_t
대신 사용할 수 있습니까 ? 차이점은 무엇입니까?
요약하면 C에서 int32, int, int32_t, int8 및 int8_t의 차이점은 무엇입니까?
사이 int32
와 int32_t
, (마찬가지로 사이 int8
및 int8_t
C 표준 정의)의 차이는 매우 간단 int8_t
하고 int32_t
, 아무것도하지만 이름을 정의하지 않습니다 int8
또는 int32
- (그들은 모두 존재하는 경우) 후자는 다른 헤더 나 라이브러리에서 아마도 (추론 가능성 첨가 선행 int8_t
및 int32_t
) C99 하여.
평범한 int
은 다른 것들과 상당히 많이. 여기서 int8_t
와 int32_t
는 지정된 크기를 가지고, int
모든 크기> = 16 비트 일 수있다. 다른시기에 16 비트와 32 비트는 모두 상당히 일반적으로 (64 비트 구현의 경우 아마도 64 비트 낫 함).
반면 int
에 C 모든 구현에는의 존재 int8_t
하고 int32_t
존재하지 않는 것이 보장됩니다 . 이것이 당신에게 중요한지 의문의 여지가있을 것입니다. 소형 역할 시스템 및 / 또는 구형 컴파일러에서 C를 사용하는 경우 문제가 발생할 수 있습니다. 주로 데스크톱 / 서버 컴퓨터의 최신 컴파일러와 함께 사용한다면 아마 않을 것입니다.
죄송합니다 char
.에 대한 부분을 놓쳤습니다 . int8_t
정수 유형이 정확히 8 비트 크기로 보장 가능한 비용 대신 사용 합니다. 문자를 저장 char
대신 사용하고 싶을 것입니다. 크기는 다양 할 수 있습니다. 정확히 1 바이트가 보장됩니다. 한 가지 이상한하지만 점은 또는 일반 char
이 서명 되었는지 서명되지 않았는 지에, 대한 보장이 없다는을 구석으로입니다 (컴파일 타임 플래그에 따라 많은 컴파일러가 둘 중 하나를 만들 수 있습니다 ). 서명 여부를 확인해야하는 경우 명시 적으로 지정해야합니다.
_t 데이터 유형은 stdint.h 헤더의 typedef 유형이며 int는 내장 기본 데이터 유형입니다. 이렇게하면 stdint.h가있는 경우에만 _t를 사용할 수 있습니다. 반면에 존재하는 것이 보장됩니다.
명시 적으로 명시 적으로 지정하지 'size'는 변수를 의미합니다.
int i = 10;
일부 시스템에서는 컴파일러에 의해 16 비트 정수가 될 수있는 다른 시스템에서는 32 비트 정수 (또는 최신 시스템에서는 64 비트 정수)가 될 수 있습니다.
많은 환경에서 이상한 매핑 된 I / O 처리하는 동안 또는 단순한 배열 상황을 지정하는 것이 좋습니다. 레거시 시스템에서는
typedef short INT16;
typedef int INT32;
typedef long INT64;
C99부터 디자이너는 기본적으로 typedef를 활용하는 stdint.h 헤더 파일을 추가했습니다.
Windows 기반 시스템에서 stdin.h 헤더 파일의 항목을 다음과 같이 볼 수 있습니다.
typedef signed char int8_t;
typedef signed short int16_t;
typedef signed int int32_t;
typedef unsigned char uint8_t;
최소 너비 정수 또는 너비 정수 유형과 같은 것이 훨씬 더 많고 더 나은 이해를 위해 stdint.h를 탐색하는 것이 나쁘지 않다고 생각합니다.
참고 URL : https://stackoverflow.com/questions/14515874/difference-between-int32-int-int32-t-int8-and-int8-t
'IT' 카테고리의 다른 글
성가신 일식 자동 닫는 따옴표 (0) | 2020.09.12 |
---|---|
Eclipse에서 작업 공간 빌드 빌드 (0) | 2020.09.12 |
C / C ++ 애플리케이션 용 오픈 소스 PDF 라이브러리? (0) | 2020.09.12 |
Tomcat 및 Eclipse를 핫 배포 환경으로 통합 (0) | 2020.09.12 |
Singleton 디자인 패턴과 Spring 컨테이너의 Singleton Bean (0) | 2020.09.12 |