반응형
일반적인 정수 자료형
C언어에서 사용하는 정수 자료형 중 자주 쓰이면서 핵심적인 자료형은 정해져있다. 아래 표에 정리되지 않은 것들은 본 글 최하단에 기재되어 있는 링크를 통해 확인하자.
자료형 | 크기 | 범위 | 최솟값 | 최댓값 | 형식 지정자 |
(signed) char | 1byte (8bit) |
-128 ~ 127 |
CHAR_MIN | CHAR_MAX | %d |
unsigned char | 1byte (8bit) |
0 ~ 255 |
0 | UCHAR_MAX | %u |
(signed) int | 4byte (32bit) |
-2,147,483,648 ~ 2,147,483,647 |
INT_MIN | INT_MAX | %d |
unsigned int | 4byte (32bit) |
0 ~ 4,294,967,295 |
0 | UINT_MAX | %u |
(signed) long long | 8byte (64bit) |
-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | LLONG_MIN | LLONG_MAX | %lld |
unsigned long long | 8byte (64bit) |
0 ~ 18,446,744,073,709,551,615 |
0 | ULLONG_MAX | %llu |
* 최솟값 및 최댓값은 limits.h 헤더 파일에 정의되어 있으므로 해당 심볼을 사용하고자 한다면 해당 헤더 파일을 include해야 한다.
* 각 자료형에서 부호를 사용하고자 할 때는 기본 형태를 사용하거나 자료형 앞에 signed를 붙이면 된다.
stdint.h 헤더 파일을 사용한 정수 자료형
자주 쓰이진 않아 위 표에 적지 않았는데 4byte 크기를 가진 long 자료형이 존재한다. 주의할 것은 64비트 OS 플랫폼이 생겨난 이후, long을 8bit로 쓰는 운영체제들이 있다는 것이다. Windows를 제외하면 대표적인 OS가 리눅스랑 OS X가 있을텐데, 두 운영체제 모두 64비트일 경우 long을 8비트로 사용하고 있다. OS가 다르다는 이유만으로 서로 이식 및 호환이 되지 않는 코드가 존재한다면, 정말 생각만 해도 끔찍하다.
이러한 문제점을 극복하고자 C99 표준부터는 int의 standard를 제시했고 그 내용을 기반으로 stdint.h이 추가되었다. 아래 표는 stdint.h에 정의되어 있는 내용이다.
자료형 | 크기 | 범위 | 최솟값 | 최댓값 | 형식 지정자 |
int8_t | 1byte (8bit) |
-128 ~ 127 |
INT8_MIN | INT8_MAX | %d |
int16_t | 2byte (16bit) |
-32,768 ~ 32,767 |
INT16_MIN | INT16_MAX | %d |
int32_t | 4byte (32bit) |
-2,147,483,648 ~ 2,147,483,647 |
INT32_MIN | INT32_MAX | %d |
int64_t | 8byte (64bit) |
-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
INT64_MIN | INT64_MAX | %lld |
uint8_t | 1byte (8bit) |
0 ~ 255 |
0 | UINT8_MAX | %u |
uint16_t | 2byte (16bit) |
0 ~ 65,535 |
0 | UINT16_MAX | %u |
uint32_t | 4byte (32bit) |
0 ~ 4,294,967,295 |
0 | UINT32_MAX | %u |
uint64_t | 8byte (64bit) |
0 ~ 18,446,744,073,709,551,615 |
0 | UINT64_MAX | %llu |
* 최솟값 및 최댓값은 stdint.h 헤더 파일에 정의되어 있으므로 해당 심볼을 사용하고자 할 때 따로 limits.h 헤더 파일을 include할 필요가 없다.
Source
반응형
'Dev > C' 카테고리의 다른 글
[C언어] scanf 정리 (0) | 2020.06.25 |
---|---|
[C언어] 변수와 자료형, 그리고 상수 (0) | 2020.06.20 |
[C언어] 문자 자료형과 아스키 코드(ASCII) (1) | 2020.06.19 |
[C언어] 실수형 변수 출력 시 소수점 자릿수 조절 (반올림/올림/내림) (0) | 2020.06.17 |
[C언어] 실수 자료형 정리 (64bit Windows 기준) (0) | 2020.06.16 |