您的位置:首页 > 编程语言

(教训)编程之难--难在大片程序中的小细节-注意变量类型和范围

2013-10-23 16:41 274 查看
     for(i=0;i<512;i++)//写扇区最大512,用i,所以i要是2字节,不然就卡住了
     {
         Byte_Program(0x800+i,0);
         Byte_Program(0x1000+i,0);
         Byte_Program(0x1600+i,0);
    }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////   先画好流程图看来比较重要。 函数重要,逻辑重要,变量,尤其多次复用的变量更重要。变量最容易被忽略类型、初始化、清0,范围等。尤其是用的多,定义的地方不在本函数甚至本文件中时,别忘本。////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 这个简单的for循环语句,我想在普通不过 啦。你可以不屑一顾的说:儿科。不过,就是这个问题,折腾我半天,我找来找去,不知道错误出在哪。程序执行到这里,就卡住了。我习惯叫卡机。  我以为是程序方的位置不对,之前我使用了goto 命令。听说这个东西不稳定。后来我去掉了,还是不行。我又怀疑是函数在多层的循环for  判断if里面,是不是太深了。我怕了。我就弄的尽量靠外。还是不行。我又怀疑是不是写的速度太快,单片机响应不了。我就加延时。还是不行。我又怀疑是不是这个单片机必须写一个扇区,再写一个,我去掉下面两句,还是不行。我多次检查跳出循环的语句,都是正确的。没办法了。我把循环范围减小到100.一试,可以了!!!!才恍然想起检查i的类型范围。原来之前定义的i都是unsigned char 类型。最大255。所以这里永远跳不出循环。在焦急,烦躁,上火的状态下。从乱糟糟的程序中找出这点问题。真不容易。细节,细节问题!!!  如果是一个小程序中,我肯定一眼就能看出这个问题。但是把他放到一堆程序中。循环,判断,跳转,多个函数,多个C文件,来回翻。加上编辑器又这么难用。心情烦躁的很。就会忽略这些细节了。包括上次,多次使用i值,用完没有清0,结果下面i++的时候出错。头疼!! 先画好流程图看来比较重要。尤其是变量,这种多次复用的变量。最容易被忽略初始化、清0,范围、类型等。编程还忌讳,没有定向,一会想这样,一会想那样,最后很容易乱套。所以,要么一开始就制定好整套流程,要么等全部结束再部分改动。不然真的烦人,极易出错!!!最后:保持一个冷静的头脑。心里平静。心静才出错几率小。尤其是总是找不错错误的时候,最容易心烦。排错逻辑一定不要被心烦搞乱!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐