社区
图形处理/算法
帖子详情
请问各位高手C++的switch语句怎么优化?
mmcsy
2008-03-23 11:16:43
优化方法没有限制,哪怕是改用其他的语言描述,只要能提高运行速度
注:case是1~8的八个数字
...全文
315
4
打赏
收藏
请问各位高手C++的switch语句怎么优化?
优化方法没有限制,哪怕是改用其他的语言描述,只要能提高运行速度 注:case是1~8的八个数字
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
「已注销」
2008-03-27
打赏
举报
回复
几种种情况:
1)在switch...case的条件很多的情况下, 使用函数指针可以优化效能;但不幸的是; 一个成功的编译器会替您这样作; 该方法并不一定适合于一个优化很成功的编译器, 最好看看最后的Release版本中关于switch的处理;
2)通过剖分软件, 将执行比较频繁的条件分支放到前面, 以加大命中的可能;
3)很多情况下, 通过算法可以避免switch...case的使用;
如果仅仅是单纯1..8的数, 可以考虑用函数指针
九桔猫
2008-03-25
打赏
举报
回复
性能上没啥优化的必要了。
「已注销」
2008-03-25
打赏
举报
回复
个人认为SWITCH语句的效率已经够高了
cnzdgs
2008-03-23
打赏
举报
回复
编译器会给你优化,对于case n(n为连续整数的情况),编译器会定义一个指针数组,每个元素为一个case标号的地址,switch语句编译为跳转到以n为下标的数组元素指向的地址。
C++
中的
switch
case
语句
本文介绍了一个
C++
程序,该程序通过输入年份和月份,判断年份是否为闰年,并显示输入月份的天数。文章详细解释了闰年的判断规则,以及如何结合
switch
-case
语句
和if
语句
实现功能。
c++
中
switch
语句
的反汇编与
优化
本文深入分析
C++
中
switch
语句
在不同场景下的反汇编实现与编译器
优化
策略。针对case数量小于4、线性分布、非线性稀疏以及超过255种情况,分别探讨了顺序比较、跳转表、索引表结合地址表及判定树等底层机制,揭示了编译器如何通过空间换时间提升分支效率。
C/
C++
中的
switch
语句
优化
效率的两种方式
本文探讨了C/
C++
中
switch
语句
的执行方式,包括jumptable和二分查找两种
优化
策略。在case值集中时,编译器使用jumptable实现O(1)时间复杂度;而在case值分布较广时,开启-O
优化
后,编译器采用二分查找将时间复杂度降低到O(logn)。这些
优化
提高了代码执行效率,使得
switch
语句
在适当场景下成为更优的选择。
c++
switch
语句
本文详细介绍了
C++
中的
switch
语句
,对比了if-else链的繁琐,展示了
switch
如何通过常量匹配快速执行代码。涵盖了
switch
的基本语法、贯穿现象的应用、以及合理利用default的重要性。
C++
反汇编:关于
Switch
语句
的
优化
措施
本文探讨了C语言中
Switch
语句
的四种
优化
形式:IF-ELSE
优化
、有序线性
优化
、非线性索引
优化
及平衡判定树
优化
。通过实际代码示例,详细解析了各种
优化
方式的工作原理及适用场景。
图形处理/算法
19,464
社区成员
50,678
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章