const ist ein Funktionsattribut, das besagt, dass eine Funktion keinen globalen Speicher liest/ändert.
Anhand dieser Informationen kann der Compiler einige zusätzliche Optimierungen durchführen.
Beispiel für GCC:
Code: Select all
float sigmoid(float x) __attribute__ ((const));
float calculate(float x, unsigned int C) {
float sum = 0;
for(unsigned int i = 0; i < C; ++i)
sum += sigmoid(x);
return sum;
}
float sigmoid(float x) { return 1.0f / (1.0f - exp(-x)); }
Code: Select all
float calculate(float x, unsigned int C) {
float sum = 0;
float temp = C ? sigmoid(x) : 0.0f;
for(unsigned int i = 0; i < C; ++i)
sum += temp;
return sum;
}
Code: Select all
float calculate(float x, unsigned int C) { return C ? sigmoid(x) * C : 0.0f; }
Mobile version