|
Hauptseite - Welches System? - Hardware - Software - Emulatoren - |
Internet MausNet Programmieren Verweise Über |
Das folgende Beispiel zeigt eigentlich nur, wieweit sich eine Optimierung treiben läßt. Leider wurde die Funktion damit auch auf Unverständlichkeit optimiert. Bevor eine Optimierung so weit geht, sollte man immer prüfen, ob eine Optimierung einer Funktion auch einen meßbaren Einfluß auf den Programmablauf hat. Wenn nicht, sollte immer eine verständlichere Form bevorzugt werden!
Wer neugierig ist, kann versuchen herauszufinden was diese Funktion macht. Wer auch noch etwas mathematische Kenntnisse hat, kann auch versuchen, dies aus der Funktion herzuleiten. Viel Spaß
Sprache | C |
---|---|
Beispiel | ones.c |
unsigned long Mask; int Ones(mask) /* HACKMEM 169 */ Mask mask; { register Mask y; y = (mask >> 1) &033333333333; y = mask - y - ((y >>1) & 033333333333); return (((y + (y >> 3)) & 030707070707) % 077); }
![]() |
English version not yet available. |