더북(TheBook)

기호 상수를 표현하는 방법

우선 #define, const, enum을 사용한 방법은 각각 다음과 같습니다.

표 11-1 | 기호 상수를 정의하는 방법

define문 사용

const 사용

enum 사용

#define AND_GATE 1
#define OR_GATE 2
#define NOT_GATE 3
 
const int AND_GATE = 1;
const int OR_GATE = 2;
const int NOT_GATE = 3;
 
enum {
    AND_GATE = 1,
    OR_GATE,
    NOT_GATE
};

 

const 상수는 태생이 변수이며, 읽기 전용으로 사용되는 변수입니다. 어찌되었건 변수라는 의미는 메모리를 할당하여 사용한다는 뜻입니다. 그러나 #define은 선행 처리 과정에서 소스 코드 자체를 수정하여 생성된 임시 파일을 컴파일 하므로 메모리를 사용하지 않습니다.

일반적인 프로그래밍에서는 const 상수가 비록 메모리를 사용하지만, 변수형에 대한 정보와 함께 범위 지정이 확실하다는 이유로 더 자주 사용합니다. 반면 아두이노(Arduino)와 같이 특수 목적의 소형 시스템에서는 메모리 용량이 PC에 비해 턱없이 부족합니다. 그러므로 아두이노와 같이 임베디드 기기에서는 메모리를 사용하는 const보다 #define을 사용하는 방법이 더 효율적입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.