Tom Duff曾经写过这样的函数,其中使用了奇怪的switch...case,他自己称之为duff's device。猛一看,似乎不合乎C的语法规则。但实际上能在所有C编译器下编译通过。其效率据说可以大大提高。
Anoop写了一个程序进行测试。转贴如下:
运行结果:
[redbull@calabash tmp]$gcc -O3 duff.c
[redbull@calabash tmp]$ ./a.out
array init done
calling send
secs=4
calling send2
secs=1
from=to