相关疑难解决方法(0)

在C中混合'切换'和'同时'

我最近阅读了有关奇怪的C代码段的页面.大多数都是可以理解的.但我无法理解这一点:

switch(c & 3) while((c -= 4) >= 0){
    foo(); case 3:
    foo(); case 2:
    foo(); case 1:
    foo(); case 0:
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解释一下这段代码背后的逻辑是什么?它是如何工作的?

c while-loop switch-statement duffs-device

7
推荐指数
1
解决办法
256
查看次数

如何编译Duff的设备代码?

我理解为什么Duff的设备比普通的循环代码更快,可以展开但没有优化.但我无法理解代码是如何编译的.
我想这是关于切换语法的一个技巧.但不是了.

怎样才能做到,而句子中存在开关句子?很奇怪.
有没有人可以解释这个?

编辑: 另一个问题.为什么duff使用8?它可能是16,65536或其他什么.因为代码大小?还有其他原因吗?例如,缓存或流水线操作的好处.

c c++ switch-statement duffs-device

6
推荐指数
2
解决办法
1663
查看次数

标签 统计

c ×2

duffs-device ×2

switch-statement ×2

c++ ×1

while-loop ×1