icesheep(414635564) 16:47:13
比如现在要打印100组数,每一组形如{100,200,100,100,100}
假定循环变量为i
用随机函数生成每组的类型TYPE[100],TYPE取1-5的值
现在要求比如第n组TYPE=1,则第n组第1个数乘以某个值a1
如果TYPE=2,则此组第2个数乘以a2等等
问题:在现代流水线机器环境下,是把TYPE的效果写成表以免清空流水线快,还是写5个if快??
icesheep(414635564) 16:48:31
100X5的原数据假定已经赋好了
icesheep(414635564) 16:48:45
而且也用指针给你了
icesheep(414635564) 16:49:44
a1,1,1,1,1
1,a2,1,1,1
1,1,a3,1,1
1,1,1,a4,1
1,1,1,1,a5
icesheep(414635564) 16:50:01
需要写一张这样的表吗??

解决方案 »

  1.   

    问题是我可以写这个程序也很简单
    我想知道100和5这两个常数如果变了
    实力对比将如何变化个人感觉两个都不好,列表要做一大堆无用乘法
    if法绝大部分都走了else一支,估计可以气死流水线了
    有没有万全之策
      

  2.   

    当然是做成表快。如果TYPE取值范围较大时,应该用switch结构,编译时会自动优化,不会逐个判断。
      

  3.   

    作成表就不需要switch了吧
    直接是5个乘法