C언어 정수와 실수의 일반적인 자료형
C언어 정수와 실수의 일반적인 자료형
■ 이번 글에서는 c언어에서 일반적으로 사용되는 정수와 실수형 자료형에 대해서 정리해볼까 합니다. 정수형은 char, short, int, long, long long 등이 있는데요. 지난 글에서 sizeof() 연산자를 이용해서 각각의 byte 크기를 구하는 과정을 정리해봤습니다. 이렇게 여러 개의 정수형 중에서 일반적으로 어떤 걸 사용해야 할까요?
■ 예를 들어 100이라는 값을 저장하기 위해서는 char부터 long long까지 모두 사용할 수 있지만 정수를 저장할 공간으로는 int를 일반적으로 사용합니다. 그 이유는 컴퓨터 CPU가 처리하기 가장 적합하기 때문인데요. 다른 자료형보다 연산 속도가 동일하거나 빠릅니다.
예제를 보면서 확인해보겠습니다.
▲ char형과 short형 변수 a와 b를 선언하고 각각 100으로 초기화하고 있는데요. 그 크기를 확인하기 위해서 sizeof() 연산자를 이용해서 변수의 byte 크기를 확인하고 있습니다. 결과를 출력해보겠습니다.
▲ char는 1byte, short는 2byte 크기라는 걸 확인할 수 있는데요. 그렇다면 이 둘을 더하면 어떤 크기로 저장될까요? char? short? 직접 해보겠습니다.
▲ char와 short로 선언된 변수 a와 b를 더해서 sizeof() 연산자를 이용해서 크기를 확인하고 있는 모습인데요. 결과를 보겠습니다.
▲ 1byte와 2byte의 크기로도 충분히 저장할 수 있을 텐데 4byte가 되는군요. 그 이유는 앞에서 정리한 것처럼 CPU가 int(4byte) 형을 좋아하기 때문에 이렇게 형변환(Promotion)이 일어나는 것입니다. 정리하자면 정수를 저장할 자료형으로는 int형을 일반적으로 사용하시면 됩니다. 그렇다면 char와 short는 쓸모가 없을까요? CPU가 int형을 빠르게 처리할 수 있어서 형 변환이 일어나지만 메모리 공간은 비효율적으로 사용하게 됩니다. 반대로 생각하면 속도는 조금 느려도 메모리 공간을 잘 활용해야하는 프로그램에서는 char와 short 가 유리합니다. 대표적으로 영상이나 음악파일 등이 그렇습니다. 참고하시고요.
다음은 일반적인 실수형 자료형을 볼 텐데요. 실수형은 오차의 범위를 고려해서 사용하시면 됩니다. 컴퓨터에서 실수를 계산하면 어쩔 수 없이 오차가 생기는데요. 그 오차의 범위가 float는 6자리까지 안전하며, double은 15자리, long double은 18자리까지 오차가 없습니다. 하지만 공간을 차지하는 크기는 순서대로 4, 8, 12byte죠. 그렇기 때문에 정수에서는 int를 보편적으로 사용하는 것처럼 실수에서는 double을 사용합니다.
이렇게 해서 정수와 실수를 저장하기 위한 자료형으로 일반적으로 사용하는 것들과 그 이유에 대해서 알아봤습니다. 수고하셨어요.