Tag miteinander
ich habe mir neulich eine Fixpunktarithmetik zusammengebastelt und
definiere dazu eine Menge Konstanten, die bereits beim Compilieren
berechnet werden sollen.
Das Ganze funktioniert soweit einwandfrei, ich frage mich halt nur, ob
wirklich alles vom Compiler/Präprozessor berechnet wird, oder ob doch
etwas durchsickert und zur Laufzeit unnötig Zeit verschwendet.
Vielfach verschachtelte Funktionen und floats (Genauigkeit = Genauigkeit
Zielsystem?) dürften ja wohl kein Problem sein, aber wie sieht es zum
Beispiel hiermit aus?
1 | #define FPA_CONST(a) ((s32)((a)* FPA_ONE + ((a)>=0 ? 0.5 : -0.5) ))
|
a wird als float übergeben. Das sind zwar immer noch alles Konstanten,
aber nun nicht mehr allzu trivial verknüpft.
Kriegt der Compiler auch sowas noch vor der Laufzeit hin?