在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
if使用优化一般是 知道数据样本分布 例如学生成绩 int main() { int i = 10; if (i <= 100 && i>90) { } else if(i <80&&i<90) { } else if (i < 60 && i < 80) { } //如此类推 return 0; } 那么60分到80分就是最多的这个时候分支条件应该是最先判断的 int main() { int i = 10; if (i < 60 && i < 80) { } else if(i <80&&i<90) { } else if (i <= 100 && i > 90) { } //如此类推 return 0; } 可以通过对数据样本的细分把if条件判断最优化 switch 就是数组取值 效率也是最高的。这里也有编译器优化 int main() { int i = 10; switch (i/10) { case 10:break; case 9:break; case 8:break; case 7:break; case 6: case 5: case 4: case 3: case 2: break; } //如此类推 return 0; } 运行一下这里执行看一下汇编
找到左花最后操作jmp 一个地址 里面有存放的case 下标 0x00234F0C 这个地址去看他的内存
一共9个就是case 下标地址就和数组取值一样
当你的标识不是连续时 最大小值差值不超过12 就是执行此优化 所以在使用时可以考虑下标参数的优化 不知道区别就去看汇编指令对比
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论