Duff's Device
来源:互联网 发布:中国男女收入差距数据 编辑:程序博客网 时间:2024/05/21 10:44
这是个很棒的迂回循环展开法, 由Tom.Duff在Lucasfilm时所设计 它的“传
统”形态, 是用来复制多个字节:.
registern=(count+7)/8;/**//*count>0assumed*/
switch(count%8)
...{
case0:do...{*to=*from++;
case7:*to=*from++;
case6:*to=*from++;
case5:*to=*from++;
case4:*to=*from++;
case3:*to=*from++;
case2:*to=*from++;
case1:*to=*from++;
} while (--n > 0);
}
switch(count%8)
...{
case0:do...{*to=*from++;
case7:*to=*from++;
case6:*to=*from++;
case5:*to=*from++;
case4:*to=*from++;
case3:*to=*from++;
case2:*to=*from++;
case1:*to=*from++;
} while (--n > 0);
}
这里 count 个字节从 from 指向的数组复制到 to 指向的内存地址 (这是个内
存映射的输出寄存器, 这也是为什么它没有被增加) 它把 swtich 语句和复制 8 个
字节的循环交织在一起, 从而解决了剩余字节的处理问题 (当 count 不是 8 的倍数
时) 相信不相信, 象这样的把case标志放在嵌套在swtich语句内的模块中是合法
的 当他公布这个技巧给 C 的开发者和世界时, Du? 注意到 C 的 swtich 语法, 特
别是 “跌落” 行为, 一直是被争议的, 而 “这段代码在争论中形成了某种论据, 但我
不清楚是赞成还是反对”
- Duff's Device
- Duff's device
- Duff's device
- Duff's Device
- Duff's device
- Duff's Device
- Duff's device
- Duff's Device
- Duff's Device
- Duff's device
- Duff's Device (达夫设备)
- Duff's device神奇的switch
- Duff's Device (达夫设备)
- Duff's device(C循环展开)
- 达夫设备(Duff's Device)
- 达夫设备Duff's Device
- 达夫设备(Duff's Device)
- 达夫设备--Duff's Device
- 行业应用软件构件化之我见
- vb.net中控件事件调用的问题??
- 如何查看SQL2000当前版本号的2个方法和各个版本说明
- Linux内核Makefile浅析
- 未来最庞大的网络用户群是农民
- Duff's Device
- Embed ActiveX controls inside Java GUI
- 函数内 声明一个字符数组和一个指向字符串数组的指针 区别
- Integrating Java and ActiveX
- Creating MTS ActiveX Object in Java
- 用书名加 光盘下载
- Lucene.net中文分词探究
- 合
- Spring配置从jndi获得DataSource