# Wednesday, April 09, 2008

Duff's Device

Da ich momentan eher mit C beschäftige, dort allerdings noch ein paar Fragen offen waren, hatte ich heute ein Code Review mit einem "alten Hasen". Dabei gab es eine Menge zu lernen. Als ich später mit meinem PM (der auch aus der C/C++-Welt stammt) das Review besprach, zeigt er mir einen netten kleinen Codeschnippsel: Duff's Device. Ich lasse das hier einmal ohne Erklärung stehen.
n = (anzahl + 3) / 4;
 
switch(anzahl % 4) {
    case 0:        do { ziel[stelle] = quelle[stelle]; stelle++;
    case 3:             ziel[stelle] = quelle[stelle]; stelle++;
    case 2:             ziel[stelle] = quelle[stelle]; stelle++;
    case 1:             ziel[stelle] = quelle[stelle]; stelle++;
                   } while(--n > 0);
}
Für meine C#-Augen war das ja gar nichts. Fallthrough im Switch-Statement. Brrr. Wenn das der Compiler sehen würde ;) Aber C ist eben etwas ganz anderes.

Wednesday, April 09, 2008 9:29:20 PM (W. Europe Daylight Time, UTC+02:00) #    Comments [0] | Trackback
Comments are closed.