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

C語言編程容易混淆的幾個問題總結

發布時間:2017-8-23 17:23    發布者:ludi
關鍵詞: 嵌入式
在進行單片機開發時,經常都會出現一些很不起眼的問題,這些問題其實都是很基礎的c語言知識點,是一些小細節。但是正是因為很基礎,又都是小細節,所以我們往往容易忽視它們。結果有時候我們會花很長的時間糾結一個問題,遲遲找不到問題的所在。當發現原因竟然是這么的簡單和不起眼時,我想大家都會感到痛不欲生。筆者今天又碰到了這樣的問題,實在忍不住了。因為這些問題都是小的知識點,考慮到之前也遇到好多這種問題,于是決定每次遇到問題就記錄下來,時刻提醒自己!!
1. !和~不一樣
§ ! :邏輯非符號;
§ ~:是位取反符號;
IO口某個管腳賦值時不要錯用 !,如
file:///C:\Users\郭曉娟\AppData\Local\Temp\ksohtml\wps88FF.tmp.jpg
1. <<和>>的優先級低于+、-
比如要實現c=x*2+1,沒有加括號會出錯
        file:///C:\Users\郭曉娟\AppData\Local\Temp\ksohtml\wps890F.tmp.png
3. 移位要防止溢出
其實用移位代替乘除法是個不錯的方法,筆者很喜歡拿到一段代碼后用移位代替乘除法來進行優化。不過有時候卻會出現問題,比如溢出問題。當很明顯可能溢出的話我們是會注意的,比如
file:///C:\Users\郭曉娟\AppData\Local\Temp\ksohtml\wps8910.tmp.png
但是有時候這個問題是不明顯的,比如當移位出現在數組索引或函數參數時,有段用液晶顯示字符的代碼如下
file:///C:\Users\郭曉娟\AppData\Local\Temp\ksohtml\wps8921.tmp.png
我們可以用左移運算來代替乘法進行優化,如
file:///C:\Users\郭曉娟\AppData\Local\Temp\ksohtml\wps8922.tmp.png
這本是一個好方法,但是事實上上面的代碼是錯的。當執行c<<4時,因為沒有明顯的賦值過程,我們可能認為沒問題,而事實上c的高位已經丟失了,所以得到錯誤的結果。一個可行的做法是先進行強制轉換,如
file:///C:\Users\郭曉娟\AppData\Local\Temp\ksohtml\wps8923.tmp.png
4. 無符號和有符號運算
當一個有符號數和一個無符號數進行算術運算時,系統會自動將有符號數強制轉換為無符號數再進行運算(即使你使用有符號數強制類型轉換),如下面兩種寫法的運輸結果是一樣的信盈達嵌入式企鵝要妖氣嗚嗚吧久零就要
file:///C:\Users\郭曉娟\AppData\Local\Temp\ksohtml\wps8924.tmp.png
file:///C:\Users\郭曉娟\AppData\Local\Temp\ksohtml\wps8935.tmp.png
5. 局部變量要初始化
這一點是比較容易被忽略的。局部變量沒有初始化的話,因為單片機每次為他分配的是同一個內存區域,當你在函數中是這么使用局部變量時,就可能出問題:
file:///C:\Users\郭曉娟\AppData\Local\Temp\ksohtml\wps8936.tmp.png
如果第一次調用fun時,a傳遞的值為0,那么flag = 0x01;
執行if(flag&0x01)后面的代碼。以后再調用fun時,即使a不為0,但flag依然使用之前的內存區域,所以其值一直為0x01,一直執行的是if后面的代碼,而不是else后面的

本文地址:http://m.qingdxww.cn/thread-516104-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 利用SAM E54 Xplained Pro評估工具包演示CAN轉USB橋接器以及基于CAN的主機和自舉程序應用程序
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产视频自拍一区 | 91preon国产在线观看 | 91精彩视频在线观看 | 日日夜夜精品 | 成人综合激情网 | 日本精品久久久久中文字幕2 | 国产我不卡 | 日韩精品免费一区二区三区 | 综合网在线视频 | 青青青国产成人久久111网站 | h在线观看免费 | 午夜噜噜噜私人影院在线播放 | 怡红院五月天 | 在线免费色 | 国产福利在线观看永久免费 | 欧美v日本| a在线观看免费 | 欧美日韩国产一区二区三区欧 | 欧美激情免费观看一区 | 一本伊在人香蕉线观新在线 | 五月婷婷在线免费观看 | 欧美国产成人精品一区二区三区 | 日本免费观看视频 | 日韩免费精品 | 国产青草视频在线观看 | 999国产精品999久久久久久 | 免费观看欧美成人禁片 | 亚洲精品乱码久久久久久蜜桃欧美 | 91中文字幕在线一区 | 精品一区二区三区在线观看l | 在线免费观看福利 | 黄色欧美在线观看 | 四虎免费紧急入口2022 | 91中文字幕在线一区 | a级国产视频 | 人皮交易在线观看高清 | 久久久综合视频 | 免费黄址 | 国产大片线上免费看 | 日韩精品免费一区二区 | 亚洲专区视频 |