• Hallo,

    hier mal etwas aus der Rubrik "ist ja erstaunlich". Ich wollte den Betrag einer Differenz ermitteln und hatte das zuerst mit if's gemacht. Dann habe ich dieses Macro verwendet

    Code
    #define diff(a, b) ( (a>b) ? (a-b) : (b-a) )

    und mich gewundert, dass es plötzlich langsamer war. Letztlich läuft folgende Variante am schnellsten (ca. Faktor 1,4 bis 1,5) d muss natürlich eine integer-Variable sein

    Code
    #define diff2(d, a, b ) \
    	d = (a) - (b); \
    	if ( d < 0 ) d = -d;

    Wenn man das dreimal auf jedes Pixel eines Bildes anwendet, kommt da eine merkliche Zeitersparnis zusammen.

    LG
    Rainer

    Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.