Molti anni fa mentre si lavora su una grafica stretti I/problema O, Tom Duff srotolato un ciclo e ha creato il suo Duff's Device come segue: (. Nota questo utilizza i parametri di funzione vecchio stile - questo non è un errore)Il dispositivo Duff funziona in altre lingue?
dsend(to, from, count)
char *to, *from;
int count;
{
int n = (count + 7)/8;
switch (count % 8) {
case 0: do { *to = *from++;
case 7: *to = *from++;
case 6: *to = *from++;
case 5: *to = *from++;
case 4: *to = *from++;
case 3: *to = *from++;
case 2: *to = *from++;
case 1: *to = *from++;
} while (--n > 0);
}
}
Questa codifica deriva direttamente dall'assembler e dalla codifica in C ed è dipendente dall'affermazione del case statement di C. Questo tipo di creatività nelle strutture di controllo interlacciare può funzionare in qualsiasi altro linguaggio?
cosa sono i "parametri di funzione vecchio stile"? –