国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

電子工程網(wǎng)

標(biāo)題: 單片機(jī)C語言易錯 [打印本頁]

作者: 檸檬之星    時間: 2016-8-18 15:40
標(biāo)題: 單片機(jī)C語言易錯

單片機(jī)C語言易錯知識點,記住它們會讓你事半功倍!

在進(jìn)行單片機(jī)開發(fā)時,經(jīng)常都會出現(xiàn)一些很不起眼的問題,這些問題其實都是很基礎(chǔ)的C語言知識點,是一些小細(xì)節(jié)。

但是正是因為很基礎(chǔ),又都是小細(xì)節(jié),所以我們往往容易忽視它們。結(jié)果有時候我們會花很長的時間糾結(jié)一個問題,遲遲找不到問題的所在。當(dāng)發(fā)現(xiàn)原因竟然是這么的簡單和不起眼時,我想不單是我,大家都會感到痛不欲生。這些問題要記錄下來,時刻提醒自己!!


1、 !和 ~ 不一樣! 是邏輯非符號,~ 是位取反符號。對IO口某個引腳賦值時不要錯用 !如


2、<<和>>的優(yōu)先級低于+、-比如要實現(xiàn)c=x*2+1,沒有加括號會出錯


3、移位要防止溢出其實用移位代替乘除法是個不錯的方法,筆者很喜歡拿到一段代碼后用移位代替乘除法來進(jìn)行優(yōu)化。不過有時候卻會出現(xiàn)問題,比如溢出問題。當(dāng)很明顯可能溢出的話我們是會注意的,比如但是有時候這個問題是不明顯的,比如當(dāng)移位出現(xiàn)在數(shù)組索引或函數(shù)參數(shù)時,有段用液晶顯示字符的代碼如下
我們可以用左移運算來代替乘法進(jìn)行優(yōu)化,如
這本是一個好方法,但是事實上上面的代碼是錯的。當(dāng)執(zhí)行c<<4時,因為沒有明顯的賦值過程,我們可能認(rèn)為沒問題,而事實上c的高位已經(jīng)丟失了,所以得到錯誤的結(jié)果。一個可行的做法是先進(jìn)行強(qiáng)制轉(zhuǎn)換,如

4、無符號數(shù)和有符號數(shù)混合運算都會被強(qiáng)制轉(zhuǎn)換為無符號數(shù)運算當(dāng)一個有符號數(shù)和一個無符號數(shù)進(jìn)行算術(shù)運算時,系統(tǒng)會自動將有符號數(shù)強(qiáng)制轉(zhuǎn)換為無符號數(shù)再進(jìn)行運算(即使你使用有符號數(shù)強(qiáng)制類型轉(zhuǎn)換),如下面兩種寫法的運輸結(jié)果是一樣的


5、局部變量要初始化局部變量沒有初始化的話,因為單片機(jī)每次為他分配的是同一個內(nèi)存區(qū)域,當(dāng)你在函數(shù)中是這么使用局部變量時,就可能出問題:如果第一次調(diào)用fun時,a傳遞的值為0,那么flag = 0x01;執(zhí)行if(flag&0x01)后面的代碼。以后再調(diào)用fun時,即使a不為0,但flag依然使用之前的內(nèi)存區(qū)域,所以其值一直為0x01,一直執(zhí)行的是if后面的代碼,而不是else后面的。






歡迎光臨 電子工程網(wǎng) (http://m.qingdxww.cn/) Powered by Discuz! X3.4
主站蜘蛛池模板: 高清视频一区二区三区 | 久久这里只有精品久久 | 欧美成人午夜在线全部免费 | 黄色小视频在线免费看 | 久久羞羞视频 | 日本 欧美 在线 | 麻豆免费视频 | 日韩欧美一区在线观看 | 日韩精品一区二区三区免费视频 | 久久久久逼 | 亚洲视频一二区 | 热久久最新 | 欧美日韩亚洲一区二区三区 | 一级毛片免费全部播放完整 | 91久久老司机福利精品网 | 九九精品免费视频 | 欧美日韩国产在线人 | 99精品网站| 欧美亚洲 尤物久久 综合精品 | 成黄动漫免费在线看 | 四虎1515hh丶com | 国产精品视频久久久久久 | 天堂网www天堂在线资源链接 | 尤物国午夜精品福利网站 | 亚洲综合在线视频 | 免费国产高清精品一区在线 | 在线观看日韩 | 色猫成人网 | 国产中文字幕在线观看 | 久久久不卡国产精品一区二区 | 18一20岁一级毛片 | 成人欧美视频 | 蜜臀视频在线 | 中文字幕日韩一区二区不卡 | 在线亚洲欧美 | 岛国大片在线观看免费版 | 日日噜噜夜夜狠狠va视频 | 免费人成在线观看网站品爱网日本 | 97在线视频免费公开观看 | 男人天堂网站在线 | 国产精品高清视亚洲精品 |