해당 타입마다 숫자 범위가 정해져있고 그 범위 안에서만 숫자를 나타낼 수 있습니다.
정수 타입 종류
정수 타입명 앞에 unsigned가 붙으면 수의 범위가 양수(+0)가 됩니다.
unsigned가 아닐 경우 타입 명 앞에 signed를 붙이지만 생략이 가능하고 보통 그렇게 합니다.
타입(숫자 범위)(unsigned 숫자 범위)
1. char(-128~127)(0~255) : 1바이트 아스키코드 문자 또는 숫자 타입입니다.
표준 라이브러리에 최대 최소 매크로가 미리 정의되어 있습니다.
#define INT8_MAX 127i8
#define INT8_MIN (-127i8-1)
#define UINT8_MAX 0xffui8
*숫자뒤에 붙는 i8의 같은 경우는 127i8이면 127이 char타입의 숫자임을 알리는 접미어입니다. 생략할 수 있으며 숫자의 경우 생략하면 int 타입으로 취급됩니다.
2. short 또는 short int(-32768~32767)(0~65535) : 2바이트 숫자 타입입니다.(short를 주로 씀)
#define INT16_MAX 32767i16
#define INT16_MIN (-32767i16-1)
#define UINT16_MAX 0xffffui16
3. int(-2,147,483,648~2,147,483,647)(0~4,294,967,295) : 4바이트 숫자 타입입니다.
unsigned int에서 int를 생략하여 unsigned로 변수를 선언할 수 있습니다.(signed도 마찬가지)
#define INT32_MAX 2147483647i32
#define INT32_MIN (-2147483647i32-1)
#define UINT32_MAX 0xffffffffui32
4. long long 또는 long long int(-9,223,372,036,854,775,808~9,223,372,036,854,775,807)(0~18,446,744,073,709,551,615) : 8바이트 숫자 타입입니다.
#define INT64_MAX 9223372036854775807i64
#define INT64_MIN (-9223372036854775807i64-1)
#define UINT64_MAX 0xffffffffffffffffui64
5. long 또는 long int : int와 마찬가지로 4바이트 숫자 타입입니다.
6. 포인터 : 실행 환경이 32비트 OS의 경우 인식 가능한 메모리 크기가 최대 4GB 정도여서 4바이트 크기이지만 64비트의 경우 8바이트입니다.
실수 타입 종류
실수 타입의 경우 unsigned 또는 signed를 붙이지 않습니다.
1. float(1.175494351e–38~3.402823466e+38) : 4바이트 부동 소수점 타입입니다.
#define FLT_MAX 3.402823466e+38F
#define FLT_MIN 1.175494351e-38F
2. double 또는 long double(2.2250738585072014e–308~1.7976931348623158e+308) : 8바이트 부동 소수점 타입입니다.
#define DBL_MAX 1.7976931348623158e+308
#define DBL_MIN 2.2250738585072014e-308
double은 float보다 큰 수를 나타내면서도 더 많은 소수 자릿수를 나타낼 수 있습니다. 즉, 정밀도가 높습니다.
기타
1. bool : true, false(1, 0)만 나타낼 수 있는 타입입니다. 크기는 1바이트를 차지합니다.
bool b = true; //1
b = false; //0
b = 1; //true
2. wchar_t(0~65535) : 2바이트 유니코드 문자 타입입니다.
wchar_t word = L'가';
3. char16_t, char32_t, char8_t : 문자 타입의 파생형으로 추후에 알아보겠습니다.
그리고 타입의 숫자 범위는 Windows 운영체제와 VS 컴파일러를 기준으로 작성되었습니다. 실행 환경에 따라 달라질 수 있습니다.
참고:
'C, C++' 카테고리의 다른 글
scanf 함수, 입력 버퍼 비우기 (0) | 2019.11.26 |
---|---|
printf 함수 (0) | 2019.11.26 |
함수 (0) | 2019.11.25 |
변수 (0) | 2019.11.25 |
프로그램의 시작점, main 함수 (0) | 2019.11.25 |