타입 한정자(Type Qualifier)란?
C 프로그래밍 언어에서 타입 한정자(type qualifier)는 기존 데이터 타입에 특별한 속성을 부여하는 키워드입니다. C 언어에는 세 가지 타입 한정자가 있으며, 그중 상수 타입 한정자인 const에 대해 자세히 살펴보겠습니다.
Const 한정자와 세 가지 상수
const 한정자를 제대로 이해하려면 먼저 C 언어에서 사용되는 세 가지 종류의 상수를 알아야 합니다.
리터럴 상수(Literal Constants)
정의 상수(Defined Constants)
메모리 상수(Memory Constants)
1. 리터럴 상수(Literal Constants)
리터럴 상수는 이름이 없는 상수로, 데이터를 직접 지정할 때 사용됩니다.
예를 들면 다음과 같습니다.
a = b + 7 // 여기서 '7'이 리터럴 상수입니다.
2. 정의 상수(Defined Constants)
정의 상수는 전처리기(preprocessor) 명령어인 #define을 사용하여 선언합니다.
예를 들면 다음과 같습니다.
#define PI 3.1415
3. 메모리 상수(Memory Constants)
메모리 상수는 C 언어의 const 한정자를 사용하며, 해당 데이터가 프로그램 실행 중 변경될 수 없음을 나타냅니다.
문법은 다음과 같습니다.
const type identifier = value;
예시:
const float pi = 3.1415;
위 코드에서 볼 수 있듯이, const는 단순한 리터럴 값에 의미 있는 이름을 부여하는 역할을 합니다. 이렇게 하면 코드의 가독성이 높아지고, 실수로 값을 변경하는 것을 컴파일러가 방지해 주므로 안전성도 향상됩니다.
예제 코드
다음은 상수 타입 한정자를 활용한 C 프로그램입니다.
#include<stdio.h>
#define PI 3.1415
main() {
const float cpi = 3.14;
printf("literal constant = %f", 3.14);
printf("defined constant = %f", PI);
printf("memory constant = %f", cpi);
}실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
literal constant = 3.14 defined constant = 3.1415 memory constant = 3.14