-
기호 상수(#define & const)C 2023. 2. 4. 18:58
#define
보통 상수에는 변수와는 달리 이름이 존재하지 않는다.
하지만 상수에도 이름을 붙일 수 있는 방법이 있는데 이는 "기호 상수(symbolic constant)"이다.
#define EXCHANGE_RATE 1120위 코드가 현재의 환율 1120을 기호 상수 EXCHANGE_RATE로 표현한 코드이다.
보통 #define 문장은 프로그램의 맨 첫 부분에 쓰는데, 이들은 전처리기(preprocessor)가 처리한다.
전처리기는 코드에서 EXCHANGE_RATE를 전부 찾아서 1120로 바꾸는 역할을 한다.
기호 상수는 리터럴 상수(상수 값을 그대로 쓰는 방법)에 비하여 몇 가지의 장점을 지닌다.
1) 기호 상수를 사용하면 프로그램을 읽기가 쉬워진다. (위 코드를 예시로 EXCHANGE_RATE가 무엇을 의미하는지 쉽게 알 수 있다)
2) 동일한 상수를 여러 곳에서 사용하고 있는 경우에, 상수 값의 변경을 쉽게할 수 있다. (위의 예시에서 환율이 1050으로 변경되었다고 가정하면 바뀌기 전 환율이 담긴 모든 코드를 찾아서 값을 변경해야한다. 하지만 기호 상수를 사용했다면 기호 상수의 정의만 변경해주면 된다.)
won = 1120 * dollar; // (1) 실제의 값을 사용 won = EXCHANGE_RATE * dollar // (2) 기호상수 사용const
const는 기호상수를 만드는 또 하나의 방법이다.
변수 선언 앞에 const를 붙이면 상수가 된다. const는 "constant"의 약자로서 변경되지 않는다는 의미를 지닌다.
const int EXCHANGE_RATE = 1120;여기서 const와 #define과의 차이점은 const로 선언된 변수는 딱 한번만 값을 저장할 수 있다는 점이다.
'C' 카테고리의 다른 글
정수를 입력받은 후 문자를 입력받을 때 (0) 2023.02.06 아스키 코드로 출력하는 방법 (0) 2023.02.06 형식 지정자의 종류 (0) 2023.02.04 오버플로우 (0) 2023.02.04 unsigned 수식자 (0) 2023.02.04