자료형 |
크기 |
부호 |
표현 범위 |
정수형 |
문자 |
char |
1 Byte |
있음 |
-128 |
+127 |
unsigned char |
없음 |
0 |
255 |
정수 |
short |
2 Byte |
있음 |
-32,768 |
+32,767 |
unsigned short |
없음 |
0 |
65,535 |
int(16 bit) |
2 Byte |
있음 |
-32,768 |
+32,767 |
unsigned(16 bit) |
없음 |
0 |
65,535 |
int(32 bit) |
4 Byte |
있음 |
-2,147,483,648 |
+2,147,483,647 |
unsigned(32 bit) |
없음 |
0 |
4,294,967,295 |
long |
4 Byte |
있음 |
-2,147,483,648 |
+2,147,483,647 |
unsigned long |
없음 |
0 |
4,294,967,295 |
long long |
8 Byte |
있음 |
-9,223,372,036,854,755,808 |
+9,223,372,036,854,755,807 |
unsigned long long |
없음 |
0 |
18,446,744,073,709,551,615 |
실수형 |
실수 |
float |
4 Byte |
|
3.4e-37 |
3.4e+38 |
double |
8 Byte |
|
1.7e-307 |
1.7e+308 |
long double |
8 Byte 이상 |
|
double 이상의 표현 범위 |
*형의 크기는 컴파일러와 사용하는 컴퓨터에 따라서 위의 값과 다를수도 있음.
출력값이 다르다면 컴파일러의 설명서를 참조
- typedef 명령문
typedef 명령문은 사용자가 원하는 자료형을 선언하는 것이 아니다.
기존에 있는 자료형을 사용자가 원하는 이름으로 사용할 수 있게끔 선언하는 명령문이다. 즉 이름만 바꾸는 것이다.
- typedef 사용하는 이유
긴 자료형을 간소하게 표현하기 위해 사용된다.
하지만 가장 큰 이유는 데이터들의 자료형을 일괄적으로 바꾸기 위해서이다.
예)
typedef unsigned char uchar;
uchar ex(uchar a, uchar b) => unsigned char ex(unsigned char a, unsigned char b);