嵌入式C语言编程课件,嵌入式系统C语言编程基础PPT课件
《嵌入式系統(tǒng)C語言編程基礎(chǔ)PPT課件》由會員分享,可在線閱讀,更多相關(guān)《嵌入式系統(tǒng)C語言編程基礎(chǔ)PPT課件(81頁珍藏版)》請在人人文庫網(wǎng)上搜索。
1、嵌入式系統(tǒng)C語言編程基礎(chǔ),楊高波,SNBC,.2,目錄,關(guān)于本課程 C語言復(fù)習(xí) 編程規(guī)范 開發(fā)高效程序的技巧,.3,為什么學(xué)習(xí)本課程,會C語法與會用C語言寫程序是兩個概念 C的靈活性以及由此而產(chǎn)生的陷阱非常多 The Most Beautiful Language and Most Dangerous Language in the Programming World! 本課程將嵌入式系統(tǒng)中最基本的(最經(jīng)常用到的)概念與技巧介紹給大家,.4,小測驗?,.5,Quiz 1,所有嵌入式系統(tǒng)的主流程最后都進入一個死循環(huán),怎樣用C語言實現(xiàn)一個死循環(huán)?,.6,Quiz 2,while().和do.whi。
2、le()有什么區(qū)別?,.7,Quiz 3,用變量a給出下列定義: 一個整型數(shù) 一個指向整型數(shù)的指針 一個有10個整型數(shù)的的數(shù)組 一個有10個指針的數(shù)組,該指針是指向一個整型數(shù)的,.8,Quiz 4,關(guān)鍵字static的作用是什么?,.9,Quiz 5,關(guān)鍵字const的作用是什么?,.10,Quiz 6,定義一個標(biāo)準(zhǔn)宏MIN ,這個宏輸入兩個參數(shù)并返回較小的一個。,.11,Quiz 7,嵌入式系統(tǒng)中經(jīng)常要對變量或寄存器進行位操作。給定一個int型變量a,寫兩段代碼,第一個將a的bit 3置為1,第二個將a的bit 3置為0。以上兩個操作中,要保持其它位不變。,.12,Quiz 8,嵌入式系統(tǒng)具。
3、有經(jīng)常去直接訪問物理地址的特點。在某工程中,要求設(shè)置一絕對地址為0 x5a00 的整型變量的值為0 xaa55。寫代碼去完成這一任務(wù)。,.13,Quiz 9,下面這段代碼的輸出是什么? void foo(void) unsigned int a = 6; int b = -20; (a+b 6) ? puts(6) : puts( 2;,左移,右移,.59,C語言復(fù)習(xí),1)循環(huán)與分支 2)作用域與存儲類 3)內(nèi)存與指針 4)位操作 5)預(yù)編譯處理,.60,預(yù)編譯處理,C編譯系統(tǒng)在對程序進行編譯之前,先進行預(yù)處理。C提供的預(yù)處理功能主要有以下三種: 宏定義 文件包含 條件編譯,.61,預(yù)編譯處理。
4、,1)宏定義 類對象宏 例:#define STX 0 x02 類函數(shù)宏 例:#define SQUARE(x) (x)*(x) 幾點說明: a.宏定義不是C語句,不在行末加分號; b.宏名有效范圍為從定義處到本源文件結(jié)束; c.在宏定義時,可以引用已經(jīng)定義的宏名; d.宏替換不占運行時間,只占編譯時間;,.62,預(yù)編譯處理,2)文件包含:#include 預(yù)處理器發(fā)現(xiàn)#include后,就會尋找后跟的這個文件并把這個文件的內(nèi)容復(fù)制到當(dāng)前位置替換#include指令; 使用#include指令的一些例子:,.63,預(yù)編譯處理,3)條件編譯 條件編譯指不對整個程序編譯,而是編譯滿足條件的那部分。。
5、條件編譯有以下幾種形式: a. #ifdef 標(biāo)識符 程序段1; #else 程序段2; #endif 它的作用:當(dāng)標(biāo)識符在前面已經(jīng)定義過,則對程序段1進行編譯,否則對程序段2進行編譯。,.64,預(yù)編譯處理,b. #ifndef 標(biāo)識符 程序段1; #else 程序段2; #endif 它的作用和#ifdef相反,當(dāng)標(biāo)識符之前沒被定義過,則對程序段1進行編譯,否則就對程序段2進行編譯。,.65,預(yù)編譯處理,c. #if 表達式 程序段1; #else 程序段2; #endif 它的作用:當(dāng)表達式的值為真時,對程序段1進行編譯,都則就對程序段2進行編譯;,.66,預(yù)編譯處理,舉例,下面是某工程中。
6、.h文件中的一段程序,請說明#ifndef/#define/#endif結(jié)構(gòu)的作用。 #ifndef DEF_H #define DEF_H #include #include “graphics.h” . #endif,防止頭文件被重復(fù)引用,.67,編程規(guī)范,.68,編程規(guī)范,1)規(guī)范的作用 改善代碼質(zhì)量 提高開發(fā)速度 增進團隊精神 養(yǎng)成良好習(xí)慣,.69,編程規(guī)范,2)編程規(guī)范 養(yǎng)成良好的編程習(xí)慣,.70,開發(fā)高效程序的技巧,.71,開發(fā)高效程序的技巧,1)ARM編程中局部變量的使用 舉例,請看一面一段程序: int checksum(int *data) char i; . for(i=0。
7、;i NUM) currentFocus = 0; LcdDisplay(menucurrentFocus.text); break; ,.79,開發(fā)高效程序的技巧,5)Bug的修正 別急著改,想想,再想想,想清楚了再動手; 考慮所做的修改是否對系統(tǒng)造成新的影響; 考慮是否對全局?jǐn)?shù)據(jù)結(jié)構(gòu)或其他人的代碼造成影響; 修改完了,應(yīng)該有詳細(xì)的代碼注釋和文檔,并對修改過的代碼進行測試。,.80,一些有益的建議,長期堅持好的Coding Style; 避免編寫技巧性很高的代碼; 長期堅持良好的文檔寫作習(xí)慣; 不要崇拜那些獨來獨往、不受約束且?guī)c邪氣的所謂“真正的編程高手”; 基礎(chǔ)最重要,堅持學(xué)習(xí),天天向上。,.81,謝謝。
總結(jié)
以上是生活随笔為你收集整理的嵌入式C语言编程课件,嵌入式系统C语言编程基础PPT课件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux c 符号表,C中的符号表
- 下一篇: 系统升级后找不到网络计算机,Window