Konstant Folding
Uttrykk med konstante operander kan evalueres ved kompileringstid, og dermed forbedre kjøretidsytelsen og redusere kodestørrelsen ved å unngå evaluering ved kompileringstid.
Eksempel:
i kodefragmentet nedenfor kan uttrykket (3 + 5) evalueres ved kompileringstid og erstattes med konstanten 8.
int f (void){ return 3 + 5;}
Nedenfor er kodefragmentet etter konstant folding.
int f (void){ return 8;}
Merknader:
Konstant folding er en relativt enkel optimalisering.
Programmerere skriver vanligvis ikke uttrykk som (3 + 5) direkte, men disse uttrykkene er relativt vanlige etter makroutvidelse og andre optimaliseringer som konstant forplantning.
Alle c-kompilatorer kan brette heltallskonstante uttrykk som er til stede etter makroutvidelse (ANSI c-krav). De Fleste c kompilatorer kan kaste heltall konstant uttrykk som er innført etter andre optimaliseringer.
Noen miljøer støtter flere flyttallsrundemoduser som kan endres dynamisk under kjøring. I disse miljøene må uttrykk som (1.0 / 3.0) evalueres under kjøring hvis avrundingsmodus ikke er kjent ved kompileringstid.