항상 고정된 수, 상수
▼ CPP에서 상수 예제
int main()
{
constexpr int CONST_INT = 4;
CONST_INT = 6; // ERROR
return (0);
}
상수는 이름에서도 알 수 있듯이 '항상 고정된 수'를 저장할 때 사용한다.
그렇기 때문에 한번 지정된 값을 변하지 않는 불변성을 가져야 한다.
CPP에서 상수는 크게 Const와 Constexpr 두개로 나뉜다.
Const(constant)
▼ CPP에서 Const 예제
#include <cstdio>
void Print(const int num)
{
printf("%d\n", num);
}
int main()
{
Print(4);
return (0);
}
Const는 런타임 상수로 초깃값을 런타임에서 아는 경우 사용한다.
대부분 함수 매개인자에 사용되는데 함수가 런타임에서 호출되는 경우가 많기 때문이다.
주의해야 할 점은 함수를 사용할 때 매개 인자가 함수 내에서 불변하는지를 확실히 확인해야 한다.
Constexpr(Constant Expression)
▼ CPP에서 Constexpr 예제
#include <cstdio>
constexpr static int CONSTEXPR_INT = 4;
int main()
{
printf("CONSTEXPR_INT : %d\n", CONSTEXPR_INT);
return (0);
}
Constexpr은 확장 상수라는 의미로 초깃값을 컴파일 타임에서 아는 경우 사용한다.
게임에서도 불변성을 유지해야하는 데이터를 처리할 때 이 constexpr를 사용한다.
가령 게임 내에서 할당할 메모리를 미리 만드는 '풀 메모리'를 만들 때 얼마 크기의 메모리를 할당할 것인지를 이 constexpr를 통해서 선언할 수 있다.
요약하자면 전역 변수로 사용할 때에는 constexpr를 쓰는게 좋다.
'<CPP> > BASIC' 카테고리의 다른 글
12. 열거형(Enum) (0) | 2021.01.14 |
---|---|
11. 고정 크기 배열(Array) (0) | 2021.01.13 |
9. 변수 삼형제 (0) | 2021.01.12 |
8. 함수 (0) | 2021.01.12 |
7. 조건 체크 (0) | 2021.01.11 |
댓글