Keil果然如神一般的编译器!

[复制链接]
24852|105
gaoyang9992006 发表于 2012-6-29 17:51 | 显示全部楼层
楼主错了。哪有程序这么写的。话说windows操作系统都是处在一个while(1){}里面
diweo 发表于 2012-6-29 18:05 | 显示全部楼层
LZ确实太自信了。盲目的自信!
“按照道理来说,程序会停在MS语句上(注意没有while)”,谁说的?没有while程序会从头开始一遍又一遍的反复执行。不然的话,正常程序里面加这个死循环干嘛?
“这时我便想这下你总该停了把,于是我便往板子上一下,才知道,尼玛他在那闪,他在那闪,他就是不停。我顿时凌乱。。。。。”。凭什么说总该停了?if是要判断条件的,条件为假的时候,里面的语句根本不执行。为什么不直接while却偏偏要加个if,不是画蛇添足么?
程序本身设计不合理,调试的思路也有问题。却“此事严重的颠覆了我的认知。是我被书误导,还是我理解错误。还是这个软件的编译器太疯狂???”云云!
 楼主| 291355171 发表于 2012-6-29 18:09 | 显示全部楼层
一时手贱,唉。。。。
eydj2008 发表于 2012-6-29 18:46 | 显示全部楼层
内功是要慢慢修练的。
 楼主| 291355171 发表于 2012-6-29 19:02 | 显示全部楼层
内功是要慢慢修练的。
eydj2008 发表于 2012-6-29 18:46

楼上的兄弟说的是。
zhuanghaiyang 发表于 2012-6-29 19:48 | 显示全部楼层
我也遇到过这种情况,并为此做过实验,当程序再次回到入口处时,所有变量将赋初值,静态变量也不行,
江枫渔火 发表于 2012-6-29 19:57 | 显示全部楼层
楼主一定会很深刻~
longquanboy 发表于 2012-6-29 20:41 | 显示全部楼层
这位朋友回答正解 19# amwrdfe
QuakeGod 发表于 2012-6-29 21:01 | 显示全部楼层
还有一点大家都没提到的,就是在程序的最开始,Keil会有一个将内存中所有的地址都清零的动作。所以你的变量aa就又清零了,永远不会加到10。
master_kang 发表于 2012-6-29 22:23 | 显示全部楼层
第一次的程序运行到ms(100);后继续运行就会使程序10跑飞,而如果看门狗同时也起作用的话就会使软件复位,从头开始运行,周而复始的运行。。。。。。跑飞。。。。。。。。重新运行。。。。。。跑飞。。。。。复位。。。。重新运行。。。。。而第二次的程序,a++只执行一次就去判断是否大于10,不大于就进入不了
,当然不会执行D1=0; while(1);
wukunshan 发表于 2012-6-29 22:33 | 显示全部楼层
看楼主的问题,好像不信任Keil编译器,如果大家不指出你程序里的低级错误,还认为Keil 软件是垃圾软件呢。;P楼主切记:以后你的程序出现任何问题都不要怀疑编译器。
qq65411253 发表于 2012-6-29 22:50 | 显示全部楼层
这个帖子果然如神一般,不过我想说偶只看了回帖,根本没有笑。
建议楼主先学点汇编,有了点汇编的基础再回头学C。那时你就会觉得C不过如此。
nextkey 发表于 2012-6-29 23:26 | 显示全部楼层
水贴年年有,今年格外多!

对LZ无语,从技术分析:有两种可能性,一种如各位网友所说的是后边全为FF的指令,自动复位;
另一种要看你的main函数在哪调用了,汇编是如何实现的?
58180698 发表于 2012-6-29 23:49 | 显示全部楼层
程序已经不断的复位后重新运行了。所以你才看到灯闪。
李冬发 发表于 2012-6-30 03:47 | 显示全部楼层
书?找tyw.
俺只看手册的。
还有俺不用KC.
jrcsh 发表于 2012-6-30 03:50 | 显示全部楼层
7# hall

因当不会,
jrcsh 发表于 2012-6-30 03:51 | 显示全部楼层
14# 291355171

随机
linqing171 发表于 2012-6-30 04:34 | 显示全部楼层
哈哈,楼主把startup.s 加入到你工程里,把里面清空内存的代码删了就好了撒。
李冬发 发表于 2012-6-30 04:56 | 显示全部楼层
LS不弟道,你出损招。
对于初学者,是不能使用这类“高级技术”的;应该从比较基础的demo学起。
BitFu 发表于 2012-6-30 09:20 | 显示全部楼层
和KEIL没关系
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部