1. const 차이 const와 constexpr은 모두 상수를 정의하지만 차이가 있다. const : 런타임 시간에 값을 결정 constexpr : 컴파일 시간에 값을 결정 아래 예시를 보자. int a = 1; // 가능 const int b = 1; // 가능 constexpr int c = 1; // 가능 모두 가능하다. int a = 1; // 가능 const int b = a; // 가능 constexpr int c = a; // 불가능 const는 런타임 시간에 a라는 값이 1인 것을 인지한 후 상수로 정의되지만, constexpr 컴파일 시간에 a라는 값이 1인 것을 알 수 없어서 에러가 난다. 2. #if문 #if문은 조건부 컴파일을 하기 위한 전처리기인데 사실 불편한 적이 많다.
들여쓰기 문제랑 코드 자체가 블러처리되듯이 되어 코드 보기가 힘들다. #ifdef _WIN64 std::cout << "This is 64 bit system" << std::endl; ...
#
32
#
if
#
endif
#
elif
#
constexpr
#
const
#
64비트
#
64
#
32비트
#
전처리기
원문 링크 : constexpr(const 차이, #if문)