Konstant foldning
udtryk med konstante operander kan evalueres på kompileringstidspunktet, hvilket forbedrer køretidens ydeevne og reducerer kodestørrelsen ved at undgå evaluering ved kompileringstid.
eksempel:
i kodefragmentet nedenfor kan udtrykket (3 + 5) evalueres på kompileringstidspunktet og erstattes med konstanten 8.
int f (void){ return 3 + 5;}
nedenfor er kodefragmentet efter konstant foldning.
int f (void){ return 8;}
noter:
konstant foldning er en relativt let optimering.
programmører skriver generelt ikke udtryk som (3 + 5) direkte, men disse udtryk er relativt almindelige efter makroudvidelse og andre optimeringer såsom konstant udbredelse.
alle C-kompilatorer kan folde heltalskonstante udtryk, der er til stede efter makroudvidelse (ANSI C-krav). De fleste C-kompilatorer kan folde heltalskonstante udtryk, der introduceres efter andre optimeringer.
nogle miljøer understøtter flere flydende afrundingstilstande, der kan ændres dynamisk på kørselstidspunktet. I disse miljøer skal udtryk som (1.0 / 3.0) evalueres ved kørselstid, hvis afrundingstilstanden ikke er kendt på kompileringstidspunktet.