你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
每日签到
STM32团队2
论坛吐槽优化专区
升级测试
C语言调试时遇到的if语句不成立,但是可以执行
[复制链接]
wanyisq
提问时间:2018-4-2 14:05 /
问答
是否解决:
在调试板子时,遇到的现象。
if语句判断,并不成立。ret的值是0,但是if(1==ret)语句却可以执行。这是什么情况。大家有碰到过的吗。指教一下
<
赞
0
收藏
0
评论
16
分享
发布时间:2018-4-2 14:05
举报
请先
登录
后回复
16个回答
bargagebaobei
回答时间:2018-4-2 14:16:05
a0a.1 32b0c
我经常遇到这种情况 不知道为什么 但是奇怪的是最后并不影响我的判断结果
评分
参与人数
1
蝴蝶豆
+2
收起
理由
zero99
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
流水源
回答时间:2018-4-2 14:23:48
a0a.1 32b0c
应该是编译器优化的原因。看看汇编代码就知道了。估计是那条代码在其他地方还有。
评分
参与人数
1
蝴蝶豆
+2
收起
理由
zero99
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
wenyangzeng
回答时间:2018-4-2 14:30:17
a0a.1 32b0c
1、降低优化等级;
2、ret定义为uint32_t;
评分
参与人数
1
蝴蝶豆
+2
收起
理由
zero99
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
Angel_YY
回答时间:2018-4-2 15:31:06
a0a.1 32b0c
这个遇到过,应该是调试器的问题,有时候调试器显示的变量值更新不及时,你这个ret初始化为0的缘故,可以试试吧这个ret定义的时候初始化为一个其他值,看看是否这里显示的是初始化的值。
评分
参与人数
1
蝴蝶豆
+3
收起
理由
zero99
+ 3
查看全部评分
赞
0
评论
回复
支持
反对
安
回答时间:2018-4-2 15:36:48
a0a.1 32b0c
编译器优化等级调到0
评分
参与人数
1
蝴蝶豆
+2
收起
理由
zero99
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
butterflyspring
回答时间:2018-4-2 16:05:04
a0a.1 32b0c
没遇过,坐等答案..
赞
0
评论
回复
支持
反对
QianFan
回答时间:2018-4-2 16:23:36
a0a.1 32b0c
volatile 吧
评分
参与人数
1
蝴蝶豆
+1
收起
理由
zero99
+ 1
查看全部评分
赞
0
评论
回复
支持
反对
不吃肉的羊
回答时间:2018-4-2 17:24:17
a0a.1 32b0c
file:///C:\Users\CJ\AppData\Roaming\Tencent\Users\2839084093\TIM\WinTemp\RichOle\OAW@659P72I07P04D}VJ73X.png
这里选为0.就不会进去了
评分
参与人数
1
蝴蝶豆
+3
收起
理由
zero99
+ 3
查看全部评分
赞
0
评论
回复
支持
反对
stm1024
回答时间:2018-4-2 18:00:52
a0a.1 32b0c
首先看他初始化没有,再看看这个值怎么来的?受到硬件影响大吗,要不要加上volatile?
评分
参与人数
1
蝴蝶豆
+2
收起
理由
zero99
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
1
2
/ 2 页
下一页
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
评分
查看全部评分
评分
查看全部评分
2、ret定义为uint32_t;
评分
查看全部评分
评分
查看全部评分
评分
查看全部评分
评分
查看全部评分
这里选为0.就不会进去了
评分
查看全部评分
评分
查看全部评分