Konstante Ausdrücke
Ausdrücke mit konstanten Operanden können zur Kompilierungszeit ausgewertet werden, wodurch die Laufzeitleistung verbessert und die Codegröße reduziert wird, indem die Auswertung zur Kompilierungszeit vermieden wird.
Beispiel:
Im folgenden Codefragment kann der Ausdruck (3 + 5) zur Kompilierungszeit ausgewertet und durch die Konstante 8 ersetzt werden.
int f (void){ return 3 + 5;}
Unten ist das Codefragment nach konstanter Faltung.
int f (void){ return 8;}
Hinweise:
Konstante Faltung ist eine relativ einfache Optimierung.
Programmierer schreiben Ausdrücke wie (3 + 5) im Allgemeinen nicht direkt, aber diese Ausdrücke sind nach Makroerweiterung und anderen Optimierungen wie konstanter Ausbreitung relativ häufig.
Alle C-Compiler können Integer-konstante Ausdrücke falten, die nach der Makroerweiterung vorhanden sind (ANSI C-Anforderung). Die meisten C-Compiler können ganzzahlige konstante Ausdrücke falten, die nach anderen Optimierungen eingeführt werden.
Einige Umgebungen unterstützen mehrere Gleitkommarundungsmodi, die zur Laufzeit dynamisch geändert werden können. In diesen Umgebungen müssen Ausdrücke wie (1.0 / 3.0) zur Laufzeit ausgewertet werden, wenn der Rundungsmodus zur Kompilierungszeit nicht bekannt ist.