프로그램에 있어서 자료형의 선택은 여러가지로 중요합니다.
어떠한 자료형을 선택하느냐에 따라 계산값과 표현방법이 달라집니다.
여러가지의 자료형이 있는 이유는 결과도 있지만 메모리의 효율적으로 사용하기 위함도 있습니다.
한개의 데이타는 큰 차이가 보이지 않지만 수많은 데이타를 저장할 때 1바이트만 적게 줄인다면 그 크기는 엄청납니다.
효율적으로 데이타를 관리하는 것과 대충 관리 하는것은 나중에 그 크기를 보면 엄청난 차이가 납니다.
쉽게 예를 들어 보기를 든다면 압출파일을 볼수 있습니다. 우리가 압축파일를 풀어서 보면 그 크기가 엄청납니다.
하지만 압축파일 자체는 그리 크지 않습니다. 효율적인 저장 방식이 얼마나 차이가 큰지를 잘 보여주는 예라 할수있습니다.
자료형에는 기본형과 파생형이 있습니다. 파생형은 그 하나하나가 너무 방대하므로 일단은 기본형만 보겠습니다.
어짜피 기본형을 알아야 파생형도 사용할 수 있으니까요. 뭐든지 기본이 중요하죠.
정수형은 문자형과 정수형으로 나눕니다.
문자형은 한개의 문자 입니다.
문자형의 표현법은 부호가 있는 char과 부호가 없는 unsigned char 입니다.
정수형은 소수점이 없는 숫자입니다.
정수형의 표현법은 부호가 있는 short, int, long 과 부호가 는 unsigned short, unsigned int, unsigned long이 있습니다.
실수형은 소수점이나 지수를 가진 수를 말합니다.
실수형의 표현법은 float, double이 있습니다. 모두 부호가 있어 unsigned는 없습니다.
정밀도를 요구하거나 큰 숫자를 기억시킬때는 double형을 사용하고 일반적으로는 float형을 사용합니다.
일반적으로 float형은 7자리 정도의 정밀도를, double형은 15자리의 정밀도를 가집니다.
나열형은 정수를 대신하여 사용하는 별명으로써 int형의 크기를 갖게 됩니다.
나열형 표현법은 enum 나열형이름{ 나열형-리스트}; 입니다.
무치형은 없음을 표시하며 함수의 결과값 형식으로 쓸경우 결과값이 없음 표시합니다.
무치형 표현법은 void 입니다.
모두 정리를 하면 아래의 표와 같습니다.
구분 |
자료형 |
범위 |
바이트 |
|
정수형 |
char |
-128 ~ 127 |
1(8) |
|
short |
-32768 ~ 32767 |
2(16) |
||
실수형 |
float |
8.4X10-37 ~ 3.4X1038 |
4(32) |
|
나열형 |
enum |
정수를 대신하여 사용하는 별명, int형의 크기 |
||
무치형 |
void |
실제 자료는 없음을 명시적으로 선언 |
약간의 특이점으로 int형의 크기가 컴파일러에 따라 달라진다는 것입니다.
Turob C 2.0의 경우 2바이트 이고 Visual C++의 경우 4바이트 입니다. 또 64비트 컴파일러는 8바이트를 적용한 것도 있습니다.
대부분의 컴파일러는 4바이트를 사용합니다. 그러니 컴파일러 사용전 자료형의 범위는 꼭 체크 하셔야 합니다.
C언어는 자료형에 대해서 엄격하지 않습니다. 결과값이 틀리게 나올지 모르지만 기본적으로 int형이 제일 빠르므로
일단 int형으로 정의하시고 나중에 수정하는 방법도 괜챦을 것입니다.
내용 중 잘못된 부분을 알려주세요. 수정하겠습니다.