데이터 타입(Data Type)이란 메모리 위치 또는 변수를 선언하는 방식을 의미합니다. C 언어에서 다루는 데이터는 여러 가지 형태로 나뉘며, 대표적인 예는 다음과 같습니다.
정수(Integer), 유리수(Rational Number), 자연수(Whole Number), 실수(Real Number), 복소수(Complex Number), 벡터(Vector), 문자(Character) 등
하드웨어 관점에서 보면 모든 데이터는 유한한 길이의 이진수 0과 1로 인코딩된 문자열입니다. 컴퓨터 내부에서는 정수 데이터가 산술 논리 장치(ALU)에서 처리되고, 소수점이 포함된 실수 데이터는 부동소수점 장치(FPU)에서 처리됩니다. 이러한 하드웨어적 특성은 고급 언어의 기본 제공(primitive) 데이터 타입에 그대로 반영됩니다.
C 언어의 기본(built-in) 데이터 타입
C 언어에는 컴파일러가 기본으로 제공하는 다양한 데이터 타입이 있으며, 대표적인 종류는 아래와 같습니다.
- int — 정수형
- float — 단정밀도 실수형
- double — 배정밀도 실수형
- char — 문자형
- unsigned int, unsigned char — 부호 없는 정수·문자형
- long int — 확장 정수형
데이터 타입의 활용
C 언어에서는 각기 다른 타입을 사용해 데이터를 다양한 방식으로 저장할 수 있습니다. 몇 가지 예시는 다음과 같습니다.
char grade = 'A'; int count, index = 10; float average = 6.9;
위 예제에서 char, int, float는 기본 제공 데이터 타입이며, grade, count, index는 해당 타입으로 선언된 변수입니다.
- grade = 'A'는 변수 grade에 문자 'A'의 문자 코드 값을 초기화합니다.
- count와 index는 int 타입 변수입니다.
- index = 10은 변수 index에 10의 이진 표현값을 저장합니다.
예제: 변수와 데이터 타입 크기 확인하기
아래는 sizeof 연산자를 사용해 변수와 기본 데이터 타입의 크기를 확인하는 C 프로그램입니다.
#include<stdio.h>
int main(){
int x = 10;
char c;
printf("Size of variable x = %ld bytes\n",sizeof(x));
printf("Size of variable c = %ld byte\n",sizeof(c));
printf("Size of short is %ld bytes\n",sizeof(short));
printf("Size of int is %ld bytes\n",sizeof(int));
printf("Size of long is %ld bytes\n",sizeof(long));
printf("Size of float is %ld bytes\n",sizeof(float));
printf("Size of double is %ld bytes\n",sizeof(double));
printf("Size of long double is %ld bytes\n",sizeof(long double));
printf("Size of char is %ld bytes\n",sizeof(char));
printf("Size of void is %ld bytes\n",sizeof(void));
return 0;
}실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다. (실행 환경은 32비트 시스템 기준)
Size of variable x = 4 bytes Size of variable c = 1 byte Size of short is 2 bytes Size of int is 4 bytes Size of long is 4 bytes Size of float is 4 bytes Size of double is 8 bytes Size of long double is 16 bytes Size of char is 1 bytes Size of void is 1 bytes
참고로 데이터 타입의 실제 크기는 운영체제와 컴파일러 환경에 따라 달라질 수 있습니다. 예를 들어 64비트 리눅스 환경에서는 long이 8바이트로 출력되는 경우도 있으므로, sizeof 연산자로 직접 확인하는 습관이 중요합니다.