OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7607|回复: 18

【探】同样的语句出现的效果却不一样!

[复制链接]

2

主题

14

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
233
金钱
233
注册时间
2015-1-19
在线时间
9 小时
发表于 2015-8-31 16:01:29 | 显示全部楼层 |阅读模式
今天在做FPU实验的时候,发现了个很奇怪的问题,仿照着原子哥的test.c敲出来的代码效果竟然不一样,大家先来找找茬,看下下面两句代码哪里不一样?!


~
~
~
咳咳...好了..不用看了.再看半天我猜你们也是会认为,这两个语句尼玛是复制出来的吧!?哪里不一样了!?
接下来我们来做下实验——
这是注释掉1号,留下2号的效果


这是注释掉2号,留下1号的效果


两张图片有什么不同?看左下角就知道了!一个有runtime,另一个没有!
为什么呢?这是相同的语句啊?!
唯一不同的是………………
~
2号语句是我直接复制原子哥例程的语句,1号语句是我自己敲出来的。
问题来了。。。。。我敲的为啥就不行呢??
~
~
经过一个1小时的检查,通过各种手段,检查生成的汇编代码,把这两个语句换位置,改变代码的位置等。。。。。发现
。。
。。
这两句代码真的不一样!
1号代码的zoom:%d后面的两个空格是tab
2号代码的zoom:%d后面的两个空格是空格
把tab改成空格后,问题就解决了!
~
可是,根本问题还没解决,为什么tab会把字符串后面的内容隔绝掉显示不出来,而空格却不会?难道sprintf会以tab作为结束字符?
之后用仿真看了下打印到buf的内容,又检查了这个sprintf打印出来的buf的去处,找到下面一段代码——


还有他的定义


~
~
~
最后,问题终于迎刃而解了。。。sprintf并不会把tab作为结束符,tab还是打印到数组buf上了,问题就来源于这个函数的实现,它有个非法字符的判断,对照ASCII表,tab(0x09)  不在  空格(0x20)  到  ~(0x7e)  之间,因此被识别成非法字符,由此退出循环,TAB后面的东西也不在显示了!
~
~
希望这次的经验能够帮助到遇到同样问题的坛友们!这次的经历也让我明白到了事物的存在必定有其原因,有时候眼睛看到的并不一定是最真实的,结果不对,肯定还有我们忽略掉的东西。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2015-8-31 16:11:52 | 显示全部楼层
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2015-8-31 21:40:19 | 显示全部楼层
非常不错的问题分析,论坛就需要有这种钻研精神的网友。
很好,很cool
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

39

主题

598

帖子

0

精华

高级会员

Rank: 4

积分
875
金钱
875
注册时间
2013-12-18
在线时间
41 小时
发表于 2015-9-1 09:35:38 | 显示全部楼层
厉害啊,。。
回复 支持 反对

使用道具 举报

56

主题

289

帖子

0

精华

高级会员

Rank: 4

积分
865
金钱
865
注册时间
2012-11-16
在线时间
65 小时
发表于 2015-9-1 09:44:04 | 显示全部楼层
虽然只是个小细节,但如果真的自己碰到了,估计也要找好一会儿。谢谢楼主了
回复 支持 反对

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13086
金钱
13086
注册时间
2012-11-26
在线时间
3809 小时
发表于 2015-9-1 09:52:00 | 显示全部楼层
这个屌,要是遇到了,估计得抓瞎
学无止境
回复 支持 反对

使用道具 举报

34

主题

149

帖子

0

精华

高级会员

Rank: 4

积分
889
金钱
889
注册时间
2012-9-11
在线时间
153 小时
发表于 2015-9-1 11:05:27 | 显示全部楼层
非常好的帖子,小问题,但是显示出楼主钻研的精神,只要有这种精神,哪怕是菜鸟,最终也会成为大师的。
http://url.cn/PqU0jG
回复 支持 反对

使用道具 举报

2

主题

394

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2112
金钱
2112
注册时间
2012-5-8
在线时间
314 小时
发表于 2015-9-1 20:39:02 | 显示全部楼层
谢谢 楼主
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2015-9-1 21:15:41 | 显示全部楼层
回复【7楼】physics:
---------------------------------
是的,关键是要学会学习,学会找问题,这是目前很多网友所不具备的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2015-9-22
在线时间
3 小时
发表于 2015-10-18 08:50:41 | 显示全部楼层
楼主写的很好
回复 支持 反对

使用道具 举报

4

主题

211

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2600
金钱
2600
注册时间
2016-7-6
在线时间
546 小时
发表于 2017-2-5 17:06:33 | 显示全部楼层
这个很cool,要是我遇到了,估计是找不出来的。
把复杂的事,做简单!
回复 支持 反对

使用道具 举报

5

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
98
金钱
98
注册时间
2016-5-18
在线时间
22 小时
发表于 2017-2-5 22:31:25 | 显示全部楼层
分析很到位
回复 支持 反对

使用道具 举报

1

主题

12

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2016-7-25
在线时间
5 小时
发表于 2017-2-7 18:05:20 | 显示全部楼层
这个确实厉害了,确实值得我们大家学习。。
回复 支持 反对

使用道具 举报

11

主题

179

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1103
金钱
1103
注册时间
2016-7-19
在线时间
168 小时
发表于 2017-2-7 21:51:43 | 显示全部楼层
楼主真厉害!!把问题都研究透,学习了!!
回复 支持 反对

使用道具 举报

90

主题

534

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1059
金钱
1059
注册时间
2017-4-12
在线时间
280 小时
发表于 2019-7-29 22:23:47 | 显示全部楼层
我要是遇到这个问题,我TM一辈子都搞不出来吧
穷不可怕,可怕的是穷的是我~~~
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2016-1-18
在线时间
23 小时
发表于 2019-7-30 08:46:18 | 显示全部楼层
高手,佩服!
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
276
金钱
276
注册时间
2017-8-1
在线时间
33 小时
发表于 2019-7-31 09:17:38 | 显示全部楼层
学习了,谢谢分享
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2019-8-4
在线时间
8 小时
发表于 2019-8-4 19:00:06 | 显示全部楼层
学习了6666
回复 支持 反对

使用道具 举报

33

主题

215

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2033
金钱
2033
注册时间
2017-12-11
在线时间
454 小时
发表于 2019-9-25 18:39:47 | 显示全部楼层
这个要点赞,必须的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-16 17:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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