Duff's device: n.

L'uso piu' drammatico visto fino adesso di un fall through in C, inventato da Tom Duff quando era alla Lucasfilm. Cercando di ottimizzare tutte le istruzioni che poteva con un ciclo interno che copiava i dati serialmente su una porta di output, decise di srotolarlo. Realizzo' dunque che la versione srotolata poteva essere implementata interlacciando le strutture di uno switch e di un ciclo:

   register n = (count + 7) / 8;      /* count > 0 assumed */

   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);
   }

Nonostante shokki chiunque lo incontri per la prima volta, il dispositivo e' in realta' C del tutto valido e legale. Il default fall through in C nelle istruzioni case e' stato a lungo il suo elemento piu' controverso; Duff osservo' che “Questo codice e' una specie di argomento per quel dibattito, ma non sono sicuro che sia a favore o contro.” Duff ha discusso l'algoritmo in dettaglio su http://www.lysator.liu.se/c/duffs-device.html. Nota che l'omissione del suffisso ++ per *to era intenzionale (per togliere ogni dubbio). Il dispositivo di Duff puo' essere usato per implementare copie di memoria, ma lo scopo originale era di copiare valori serialmente in un registro magico di I/O.

[Per una mancanza di chiarezza totale, il paio di parentesi piu' esterno li' sopra potrebbe essere anche rimosso — GLS]