3
回答
代码如下,传说中这段代码可以很省时间,可是为什么测试结果显示,他与普通的for和while差不多呢? 我有尝试关闭编译优化,数据也很大,from数组大约有两百吧,循环send_duff代码10000次。
void send_duff(char *to, char *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);
}
}