查看: 2574|回复: 3

[CodeWarrior] cw10.7debug时变量值出问题

[复制链接]

该用户从未签到

5

主题

22

帖子

2

注册会员

Rank: 2

积分
130
最后登录
2021-5-17
发表于 2018-1-22 16:47:50 来自手机 | 显示全部楼层 |阅读模式
rt,写一个函数,包含一个局部变量,初始化为0,在进行赋值前通过variables窗口查看该变量值发现并不是等于0而是0x18,请问这是怎么回事?将该变量值换成全局变量,问题解决,请问为什么?
我知道答案 目前已有3人回答
mmexport1516610434644.png
mmexport1516610446572.png
mmexport1516610450285.png
mmexport1516610454558.png
回复

使用道具 举报

  • TA的每日心情
    慵懒
    2018-11-15 16:18
  • 签到天数: 39 天

    连续签到: 1 天

    [LV.5]常住居民I

    16

    主题

    259

    帖子

    3

    高级会员

    Rank: 4

    积分
    993
    最后登录
    2023-1-6
    发表于 2018-1-23 15:12:48 | 显示全部楼层
      那些年我也被飞思卡尔的单片机坑过,声明的变量前加个volatile 吧,不要被编译器优化这变量
    回复 支持 1 反对 0

    使用道具 举报

    该用户从未签到

    5

    主题

    22

    帖子

    2

    注册会员

    Rank: 2

    积分
    130
    最后登录
    2021-5-17
     楼主| 发表于 2018-1-24 08:51:07 | 显示全部楼层
    小华-415468 发表于 2018-1-23 15:12
    那些年我也被飞思卡尔的单片机坑过,声明的变量前加个volatile 吧,不要被编译器优化这变量 ...

    是的,虽然不知道CW的编译器为什么要这样进行优化,加volatile确实能防止这种优化。

    解决方案有:1、改为全局变量(一般应尽量减少全局变量的使用);
    2、加volatile关键字。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    4

    帖子

    0

    新手上路

    Rank: 1

    积分
    20
    最后登录
    2018-3-8
    发表于 2018-3-6 10:05:13 | 显示全部楼层
    测试时 关闭优化不行吗
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-20 23:53 , Processed in 0.097949 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表