4
종종 3600
대신 60*60
과 같은 코드가 표시됩니다. 둘 다 컴파일러가 똑같은 일을합니까? 즉, 프리 컴파일러가 60 * 60을 3600
으로 대체합니까?LLVM은 컴파일하기 전에 간단한 산술 연산을합니까?
종종 3600
대신 60*60
과 같은 코드가 표시됩니다. 둘 다 컴파일러가 똑같은 일을합니까? 즉, 프리 컴파일러가 60 * 60을 3600
으로 대체합니까?LLVM은 컴파일하기 전에 간단한 산술 연산을합니까?
예, 상수 표현식은 컴파일 타임에 계산됩니다.
완벽하게 정확하기 위해서는 필수는 아니지만 대부분의 컴파일러가 수행합니다. 약 constant folding에 대해 읽어보십시오.
질문은 특정 구현에 관한 것이 었습니다. –
컴파일러 구현에 사용 된 링크 및 해당 구문에 +1. –
@ MichaelKrelin-hacker, 저는 이에 동의합니다. 나는 기술의 이름을 추가 할 것을 생각했다. – alvin