컴파일타임에 연산이 이루어질 수 있다는데 이게 어떻게 가능한가요?

조회수 490회

tmp또는 constexpr 공부 중에 컴파일 타임에 계산이 된다는 내용이 있는데

컴파일은 단순히 소스코드를 기계어로 바꾸는 것으로 아는데 어떻게 이 과정중에 계산이 이루어질 수 있나요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 컴파일도 여러 단계로 나눠지는데요. 보통 전처리 단계와 기계어로 바꾸는 단계라고 생각하시면 됩니다. 보통 전처리 단계에서 전처리기(#include, #define 등)에 대한 처리를 하고, constexpr 같은 경우에는 constexpr 변수든 함수든지 컴파일 단계에서 계산을 해서 그 단계에서 값을 구할 수 있어야지만 에러를 내지 않고 컴파일을 진행합니다. 컴파일러가 기계어로 바꾸기 전에 constexpr이 있으면 직접 계산을 해보고 계산할 수 없는 경우에는 에러, 계산할 수 있으면 통과라고 생각하시면 됩니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)