小编Sha*_*son的帖子

Duff的设备是否适用于其他语言?

很多年前,在处理严格的图形I/O问题时,Tom Duff展开了一个循环并创建了他的Duff设备,如下所示:

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

(注意这使用旧式函数参数 - 这不是错误.)

这种编码直接来自于汇编程序和C编码的思考,并且依赖于C的case语句落实.隔行扫描控制结构中的这种创造力能否适用于任何其他语言?

c

7
推荐指数
2
解决办法
1274
查看次数

gcc和VC++预处理器可以处理的#defines数量是否有限制?

在讨论具有大量常量和位模式的项目的设计可能性时,问题出现了标准编译器可以处理多少#defines?我认为它是一个非常大的数字,但我们很想知道是否有一个实际的上限.

gcc visual-c++ c-preprocessor

6
推荐指数
1
解决办法
362
查看次数

标签 统计

c ×1

c-preprocessor ×1

gcc ×1

visual-c++ ×1