뭔가 long데이터형이 깔끔하지 않아.
|
32 bit |
64 bit |
char |
1 byte |
1 |
short int |
2 |
2 |
int |
4 |
4 |
long int |
4 |
8 |
float |
4 |
4 |
double |
8 |
8 |
pointer |
4 |
8 |
1. 분류
정수형 : char, int 류
실수형 : float(float-point), double(double float)
2. char
8bit 를 사용하여 표현가능한 범위에 있는 경우 사용한다. 꼭 문자만을 사용해야하는게 아니다. 다만 문자를 저장하는데
가장 적합한 크기가 1byte 이므로 이를 좀더 쉽게 사용하도록 유도하기 위함.
문자를 인코딩하기 위한 표준 규약인 ASCII 코드를 살펴보면 알 수 있다. (0~255 까지임)
3. short int
short int 가 원래 데이터형 이름이다.
DOS시절 16bit운영체제이기때문에 int 라고 선언하면 short int 인 2byte 크기의 데이터형으로 인식되어, short 는 생략가능했음.
하지만 현재 32bit운영체제에서는 short 를 생략할 수 없음.
short라는 용어는 short int 라는 데이터형에서만 사용하기 때문에 편하게 int를 생략하고 short 라고 말해도 됨. 따라서
short int = short
타입 |
바이트수 |
최소/최대 값 |
limits.h 상수 |
접미사 |
비고 |
(signed) short (int) unsigned short (int) |
2 |
-32768 - 32767 0 - 65535 |
SHRT_MIN, SHRT_MAX USHRT_MAX |
|
|
4. int
타입 | 바이트수 | 최소/최대 값 | limits.h 상수 | 접미사 | 비고 |
(signed) int unsigned (int) | 4 | -2147483648 - 2147483647 | INT_MIN, INT_MAX UINT_MAX |
U |
|
5. long int
short 와는 달리 long는 32비트 이고 현재 32bit 운영체제 에서는 long 는 생략가능하다. 따라서 아래와같이 쓸수있다.
long int = int
또한 long 이라는 키워드도 int 앞에만 붙여서 사용하기 때문에 long 나오면 int도 나올수밖에 없다. 따라서 int 를 생략 가능하다. 결과적으로 아래와같이쓸수있다.
long int = int = long
타입 | 바이트수 | 최소/최대 값 | limits.h 상수 | 접미사 | 비고 |
(signed) long (int) | 4 | -2147483648 - 2147483647 | LONG_MIN, LONG_MAX | L UL |
|
타입 | 바이 트수 | 최소/최대 값 | limits.h 상수 | 접미사 | 비고 |
(signed) long long (int) | 8 | -9223372036854775808 - 9223372036854775807 | LONG_LONG_MIN, LONG_LONG_MAX | LL ULL |
|
6. float
4바이트 실수형. IEEE 754 규약에 따라 부호개념이 무조건 존재함. 그래서 signed나 unsigned 키워드를 사용할 필요가 없음.
7. double
8바이트 실수형 . IEEE 754 규약에 따라 부호 개념이 무조건 존재함. 그래서 signed나 unsigned 키워드를 사용할 필요가 없음.
'프로그래밍 > C , C ++' 카테고리의 다른 글
확인해야할것1 (0) | 2017.03.30 |
---|---|
Windows/TCP 예제 프로그래밍 (server/client) (0) | 2013.08.02 |
#pragma 사용법 2 (0) | 2013.04.03 |
#pragma 사용법 1 (0) | 2013.04.03 |
[c_스터디]3. 형변환, 함수 (0) | 2013.03.01 |