找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

51单片机C语言int变量赋负数,但实际为0怎么办

查看数: 2373 | 评论数: 12 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2024-2-15 14:04

正文摘要:

int变量不是有负数范围吗,但赋值负数后debug发现实际值=0

回复

ID:883242 发表于 2024-2-20 07:40
lxj1245481730 发表于 2024-2-19 17:24
之前测试j为uint,现在改为int还是不行,大概率是proteus与keil的联调有问题,看不了具体变量的值。

把优化等级改成0!
ID:1029483 发表于 2024-2-19 13:48
Y_G_G 发表于 2024-2-18 13:29
如果是我
如果没有硬件仿真,那就干脆烧录到开发板上,通过串口打印出来,看看它的值到底是多少

串口调试%好啊
ID:844772 发表于 2024-2-18 16:24
lxj1245481730 发表于 2024-2-16 14:04
变量调用了还是=0,估计是keil和proteus联调有问题

之前应该是变量没启用给优化了,但后来你用的是uint,怎么会有负值啊。
ID:1111098 发表于 2024-2-18 16:02
lxj1245481730 发表于 2024-2-16 14:04
变量调用了还是=0,估计是keil和proteus联调有问题

仅增加j--语句仍有可能会被优化掉的,使用判断语句调用,例如if(j == 0)再试试
ID:401564 发表于 2024-2-18 13:29
如果是我
如果没有硬件仿真,那就干脆烧录到开发板上,通过串口打印出来,看看它的值到底是多少
ID:535881 发表于 2024-2-16 10:28
Hephaestus 发表于 2024-2-15 22:06
优化等级开高了吧。

改变了优化等级还是显示0,但实际判断还是<0的,应该是显示有问题,这样就没法debug调试了,现在我添加了数码管,也能查看变量。
ID:526108 发表于 2024-2-16 08:48
变量没有调用被优化掉了
ID:883242 发表于 2024-2-15 22:06
lxj1245481730 发表于 2024-2-15 21:32
解决了,我做的是keil和proteus联鳎赡躣ebug有点问题,我写if(i

优化等级开高了吧。
ID:535881 发表于 2024-2-15 21:32
解决了,我做的是keil和proteus联调,可能debug有点问题,我写if(i<0)LED=1;LED还是会亮,表明程序没问题,应该是debug哪里出问题了

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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