본문 바로가기

C, C++

변수 타입 종류

해당 타입마다 숫자 범위가 정해져있고 그 범위 안에서만 숫자를 나타낼 수 있습니다.

 

정수 타입 종류

 

정수 타입명 앞에 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_tchar32_tchar8_t : 문자 타입의 파생형으로 추후에 알아보겠습니다.

 

그리고 타입의 숫자 범위는 Windows 운영체제와 VS 컴파일러를 기준으로 작성되었습니다. 실행 환경에 따라 달라질 수 있습니다.

 

참고:

https://msdn.microsoft.com/ko-kr/library/hd7199ke.aspx

'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