Konstant vikning
uttryck med konstanta operander kan utvärderas vid kompileringstid, vilket förbättrar körtidsprestanda och minskar kodstorleken genom att undvika utvärdering vid kompileringstid.
exempel:
i kodfragmentet nedan kan uttrycket (3 + 5) utvärderas vid kompileringstiden och ersättas med konstanten 8.
int f (void){ return 3 + 5;}
nedan är kodfragmentet efter konstant vikning.
int f (void){ return 8;}
anmärkningar:
konstant vikning är en relativt enkel optimering.
programmerare skriver i allmänhet inte uttryck som (3 + 5) direkt, men dessa uttryck är relativt vanliga efter makroutvidgning och andra optimeringar som konstant förökning.
alla C-kompilatorer kan vika heltalskonstantuttryck som finns efter makroexpansion (ANSI C-krav). De flesta C-kompilatorer kan vika heltalskonstantuttryck som introduceras efter andra optimeringar.
vissa miljöer stöder flera flyttalsrundningslägen som kan ändras dynamiskt vid körning. I dessa miljöer måste uttryck som (1.0 / 3.0) utvärderas vid körning om avrundningsläget inte är känt vid kompileringstiden.