상수 폴딩
상수 피연산자가 있는 식은 컴파일 타임에 계산할 수 있으므로 런타임 성능이 향상되고 컴파일 타임에 계산을 피함으로써 코드 크기가 줄어듭니다.
예:
아래의 코드 조각에서 표현식(3+5)은 컴파일 타임에 평가되고 상수 8 로 대체 될 수 있습니다.
int f (void){ return 3 + 5;}
아래는 상수 폴딩 후의 코드 조각입니다.
int f (void){ return 8;}
참고:
상수 폴딩은 비교적 쉬운 최적화입니다.
프로그래머는 일반적으로(3+5)와 같은 표현식을 직접 작성하지 않지만 이러한 표현식은 매크로 확장 및 상수 전파와 같은 기타 최적화 후에 비교적 일반적입니다.
모든 씨 컴파일러는 매크로 확장 후 존재하는 정수 상수 식을 접을 수 있습니다. 대부분의 씨 컴파일러는 다른 최적화 후에 도입되는 정수 상수 식을 접을 수 있습니다.
일부 환경에서는 런타임에 동적으로 변경할 수 있는 여러 부동 소수점 반올림 모드를 지원합니다. 이러한 환경에서는 컴파일 타임에 반올림 모드를 알 수 없는 경우 런타임에(1.0/3.0)과 같은 식을 평가해야 합니다.