1. 상수(const)
- 프로그램 실행 중 값이 고정되어 변경되지 않는 변수
- #define, const, constexpr 등의 키워드로 정의
2. 매크로 상수(#define)
#include <stdio.h>
#define TAX_RATE 0.2
int main(void)
{
...
}
전처리기(#define)를 사용하여 정수, 실수, 문자열 등 다양한 형태의 상수를 정의할 수 있다.
#include <stdio.h>와 같은 전처리기 단계에서 정의되기 때문에 실행 중 변경이 불가능하고, 형(type) 검사가 불가능하기 때문에 디버깅할 때 문제가 발생할 수 있다.
3. 상수 변수(const)
#include <stdio.h>
int main(void)
{
const int MONTHS = 12;
}
형(type)을 명확하게 설정하여 디버깅 및 오류 방지가 용이하다.
매크로 상수(전처리기)와 차이점이라면, 상수 변수는 메모리에 상수를 저장, 컴파일러에서 처리, 타입을 지정하는 것이 필수다.
4. 컴파일 타입 상수(constexpr)
#include <iostream>
constexpr double PI = 3.14159;
int main(void)
{
constexpr int MAX = 100;
return 0;
}
C++ 11이상부터 지원되는 기능(C언어에선 사용 불가)으로, 컴파일러가 값을 미리 계산하여 코드에 직접 삽입하기 때문에 실행 파일에선 계산이 필요없다.
즉, 런타임 계산을 줄이기 때문에 성능이 향상된다.
5. 열거형 상수(enum)
enum Colors
{
GREEN,
RED,
YELLOW,
BLUE
}
그룹화된 상수를 정의할 때 유용하지만 정수형 상수로만 사용하다는 단점이 존재한다.
이를 극복하기 위한 것이 enum class인데, 이는 C++ 11이상부터만 사용 가능하다.
'Theory > C&C++' 카테고리의 다른 글
[C/C++]ASCII(아스키) 코드 특징 및 코드표 (0) | 2024.11.21 |
---|---|
[C/C++]입출력 포맷팅: 형식 지정자와 제어문자 (1) | 2024.11.17 |
[C/C++]자료형 종류와 크기, 표현 범위 (0) | 2024.11.10 |
[C/C++]주석 (2) | 2024.11.07 |