【发布时间】:2009-05-03 17:23:46
【问题描述】:
多年前,在处理一个紧凑的图形 I/O 问题时,Tom Duff 展开了一个循环并创建了他的Duff's Device,如下所示:
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);
}
}
(请注意,这使用旧式函数参数 - 这不是错误。)
这种编码直接来自汇编程序和 C 编码的思考,并且依赖于 C 的 case 语句。这种交错控制结构中的创造力可以在任何其他语言中使用吗?
【问题讨论】:
-
什么是“旧式函数参数”?
标签: c