Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++에서 상수를 정의하는 방법 총정리

C++에서는 변수를 선언할 때 자료형 앞에 const 한정자(qualifier)를 붙여 상수를 정의할 수 있습니다. const로 선언된 변수는 초기화 이후 값을 변경할 수 없으며, 변경을 시도하면 컴파일 오류가 발생합니다.

예제

#include<iostream>
using namespace std;

int main() {
    const int x = 9;
    x = 0;   // 컴파일 오류 발생
    return 0;
}

위 코드는 상수 변수 x를 정의합니다. 그러나 상수로 선언된 값에 새로운 값을 다시 할당하려고 하기 때문에 컴파일러가 오류를 발생시킵니다. 즉, const 변수는 반드시 선언과 동시에 초기화해야 합니다.

constexpr을 활용한 상수 정의

C++11부터는 컴파일 타임 상수를 정의할 때 constexpr 키워드를 사용할 수 있습니다. constexpr은 해당 값이 컴파일 시점에 결정됨을 보장하므로, 배열 크기 지정 등 컴파일 타임 상수가 필요한 경우에 유용합니다.

constexpr int MAX_SIZE = 100;

#define 매크로와의 비교

전통적인 C 스타일에서는 전처리기 매크로인 #define으로 상수를 정의하기도 했습니다.

#define PI 3.14159

하지만 #define은 타입 검사가 이루어지지 않고 스코프 개념이 없어 디버깅이 어렵습니다. 따라서 현대 C++에서는 타입 안정성이 보장되는 const 또는 constexpr을 사용하는 것이 권장됩니다.