当前位置: 首页 > news >正文

keil 中优化等级的bug

一,问题描述

        程序中代码有的执行,有的不执行,仔细研究,查询人工智能。

      

程序中printf打印后面的代码不执行, 然后过几十个函数又开始正常了。

二.分析问题

       跳过函数一般又判断和Goto等语句,其它的溢出和错误编译器会报错,而这个编译器并没有报错,那么怎么回事呢?

三.解决办法

    将代码优化等级降低,代码优化等级高导致的部分函数无法正确执行,我觉得这是个bug。

 将图中optimization选项改成default或者Level 0即可解决,优化太高导致。

四,总结

  • 优化等级0(O0)是开发调试的“安全区”,以牺牲性能为代价换取调试友好性。
  • 优化等级2(O2)是性能优化的“竞技场”,需在调试困难和代码效率之间权衡。
  • 最佳实践
    • 开发阶段使用O0,确保问题可复现、可定位。
    • 发布阶段使用O2,结合volatile#pragma等手段平衡优化与调试需求。
    • 在嵌入式系统中,针对不同模块采用混合优化策略。
    • 个人建议不要优化,如果你非常熟悉编译优化,那么你可以使用,如果不熟悉编译器原理和优化方案最好不要优化。

相关文章:

  • 聊聊Spring AI Alibaba的RedisChatMemory
  • JavaEE-多线程实战01
  • 关系型数据库PostgreSQL for Mac 保姆级使用教程
  • 【三大特性】虚表 内存分布
  • AI应用讲座2025年4月笔记
  • 电镀废水资源化利用的工艺介绍
  • Centos 7.6安装redis-6.2.6
  • 解决新搭建的centos虚拟器,yum下载不了的问题
  • 蓝桥杯 2. 确定字符串是否是另一个的排列
  • LS2K0300龙芯开发板——智能车竞赛
  • 假设检验学习总结
  • 图像预处理-形态学变换
  • React-Native项目矢量图标库(react-native-vector-icons)以及如何使用
  • 强化学习机器人路径规划——Sparrow复现
  • adb常用的20个命令
  • splitchunk(如何将指定文件从主包拆分为单独的js文件)
  • Python+Selenium+Pytest+Allure PO模式UI自动化框架
  • 文章记单词 | 第48篇(六级)
  • 关于Android Studio的Gradle各项配置2
  • 优化无头浏览器流量:使用Puppeteer进行高效数据抓取的成本降低策略
  • 北美票房|《罪人》遭媒体唱衰,好莱坞业内人士集体反击
  • 深一度|“凑合过”的利物浦,英超第二冠只求性价比
  • 荣盛发展去年亏损约84.43亿元,要“过苦日子、紧日子”
  • 第152次中老缅泰湄公河联合巡逻执法行动圆满结束
  • 特朗普政府称将恢复被终止的外国学生合法身份
  • 蚂蚁集团将向全体股东分红