读code区一个字节赋值传递时丢失?神奇的问题,有图有真相

2020-01-23 14:47发布

cc.JPG (144.59 KB, 下载次数: 0) 下载附件 2014-4-29 08:31 上传 ---------这是一个读中文字符串的操作“气”
从数据上看*s确实拿到了正确的数据,但是在传给low_byte的时候发生丢失???怎么执行过赋值语句后,low_byte的值为0呢???

更奇怪的是,在另外一个文件中,我屏蔽几条不相干的语句,就没这个问题了。实际发现编译后“气”生成的两字节编码,在code区的存放位置发生了变化,变小了,但是这个地址为什么就不行呢???抓狂的很啊

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
xiaomu
1楼-- · 2020-01-24 05:23
应该是优化问题, 你把 low_byte 定义 全局变量 再查看一下,

这个应当是优化问题,

你想要看是否读出对不对, 你把优化去掉,再来看,

优化级别高的时候,调试看局部变量是不准的,
一般用串口打印或者定义一些全局变量来观察数值,
验证结束后在改为局部变量!!
yelang1124
2楼-- · 2020-01-24 09:32
 精彩回答 2  元偷偷看……
lusson
3楼-- · 2020-01-24 13:26
好奇你的putcharx输入参数是什么类型,char?int?
yelang1124
4楼-- · 2020-01-24 17:02
xiaomu 发表于 2014-4-29 10:00
应该是优化问题, 你把 low_byte 定义 全局变量 再查看一下,

这个应当是优化问题,

首先不是全局变量的问题,

44.JPG (265.32 KB, 下载次数: 0)

下载附件

2014-4-29 11:43 上传

yelang1124
5楼-- · 2020-01-24 19:35
lusson 发表于 2014-4-29 11:42
好奇你的putcharx输入参数是什么类型,char?int?

unsigned int 跟这个应该没关系吧,应该是默认的编译级别照成的问题,请继续看帖,我想能够搞清楚 reuse common entry code 是怎么回事,问题也就水落石出了

一周热门 更多>