반응형
constexpr이란?
constexpr은 C++11부터 도입된 키워드로, 컴파일 타임에 상수 값을 평가하여 정의할 수 있게 한다.
예시
constexpr TickType_t US_DELAY = 250;
장점
1. 타입 안전성
- constexpr은 타입이 있는 상수를 정의하므로, 컴파일 타임에 타입 검사를 할 수 있다.
- 이는 코드의 안정성과 디버깅의 용이성을 높인다.
2. 컴파일 타임 평가
- 컴파일 타임에 값이 결정되므로, 최적화가 잘 이루어진다.
- 상수 값은 실행 중 메모리를 차지하지 않고, 플래시 메모리나 레지스터에 직접 저장될 수 있다.
3. 스코프 관리 가능
- constexpr은 변수가 선언된 스코프 내에서만 유효하므로, 전역 변수와 지역 변수를 효과적으로 관리할 수 있다.
단점
1. 복잡한 초기화 제한
- constexpr은 컴파일 타임에 평가되어야 하기 때문에, 복잡한 런타임 연산이나 I/O 연산 등은 사용할 수 없다.
2. 메모리 제약
- 작은 상수나 간단한 표현식에는 적합하지만, 큰 배열이나 복잡한 데이터 구조를 constexpr로 정의하는 데는 한계가 있다.
반응형
'언어 > C, C++' 카테고리의 다른 글
[C++] #define, constexpr, PROGEM 비교 (0) | 2024.10.27 |
---|---|
[C++] PROGEM (0) | 2024.10.26 |
[C++] #define (0) | 2024.10.24 |
[C, C++] 모든 타입 정리 (0) | 2024.04.24 |
[C++] constexpr이란? const와 constexpr의 차이 ( const vs constexpr ) (0) | 2024.01.08 |
댓글