找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2304|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

編程之難--難在大片程序中的小細(xì)節(jié)-注意變量類型和范圍

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:71477 發(fā)表于 2015-1-1 19:38 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
    for(i=0;i<512;i++)//寫扇區(qū)最大512,用i,所以i要是2字節(jié),不然就卡住了
     {
         Byte_Program(0x800+i,0);
         Byte_Program(0x1000+i,0);
         Byte_Program(0x1600+i,0);
    }/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   先畫好流程圖看來比較重要。 函數(shù)重要,邏輯重要,變量,尤其多次復(fù)用的變量更重要。變量最容易被忽略類型、初始化、清0,范圍等。尤其是用的多,定義的地方不在本函數(shù)甚至本文件中時(shí),別忘本。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
這個(gè)簡(jiǎn)單的for循環(huán)語(yǔ)句,我想在普通不過 啦。你可以不屑一顧的說:兒科。不過,就是這個(gè)問題,折騰我半天,我找來找去,不知道錯(cuò)誤出在哪。程序執(zhí)行到這里,就卡住了。我習(xí)慣叫卡機(jī)。
  我以為是程序方的位置不對(duì),之前我使用了goto 命令。聽說這個(gè)東西不穩(wěn)定。后來我去掉了,還是不行。我又懷疑是函數(shù)在多層的循環(huán)for  判斷if里面,是不是太深了。我怕了。我就弄的盡量靠外。還是不行。我又懷疑是不是寫的速度太快,單片機(jī)響應(yīng)不了。我就加延時(shí)。還是不行。我又懷疑是不是這個(gè)單片機(jī)必須寫一個(gè)扇區(qū),再寫一個(gè),我去掉下面兩句,還是不行。我多次檢查跳出循環(huán)的語(yǔ)句,都是正確的。沒辦法了。我把循環(huán)范圍減小到100.一試,可以了!。!才恍然想起檢查i的類型范圍。原來之前定義的i都是unsigned char 類型。最大255。所以這里永遠(yuǎn)跳不出循環(huán)。在焦急,煩躁,上火的狀態(tài)下。從亂糟糟的程序中找出這點(diǎn)問題。真不容易。細(xì)節(jié),細(xì)節(jié)問題。!
  如果是一個(gè)小程序中,我肯定一眼就能看出這個(gè)問題。但是把他放到一堆程序中。循環(huán),判斷,跳轉(zhuǎn),多個(gè)函數(shù),多個(gè)C文件,來回翻。加上編輯器又這么難用。心情煩躁的很。就會(huì)忽略這些細(xì)節(jié)了。包括上次,多次使用i值,用完沒有清0,結(jié)果下面i++的時(shí)候出錯(cuò)。頭疼!
先畫好流程圖看來比較重要。尤其是變量,這種多次復(fù)用的變量。最容易被忽略初始化、清0,范圍、類型等。編程還忌諱,沒有定向,一會(huì)想這樣,一會(huì)想那樣,最后很容易亂套。所以,要么一開始就制定好整套流程,要么等全部結(jié)束再部分改動(dòng)。不然真的煩人,極易出錯(cuò)!!
最后:保持一個(gè)冷靜的頭腦。心里平靜。心靜才出錯(cuò)幾率小。尤其是總是找不錯(cuò)錯(cuò)誤的時(shí)候,最容易心煩。排錯(cuò)邏輯一定不要被心煩搞亂!

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表