嵌入式linuxc高級(jí)編程(一)_第1頁(yè)
嵌入式linuxc高級(jí)編程(一)_第2頁(yè)
嵌入式linuxc高級(jí)編程(一)_第3頁(yè)
嵌入式linuxc高級(jí)編程(一)_第4頁(yè)
嵌入式linuxc高級(jí)編程(一)_第5頁(yè)
已閱讀5頁(yè),還剩40頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

嵌入式LinuxC高級(jí)編程(一)報(bào)告人:曹國(guó)輝課程目標(biāo)實(shí)訓(xùn)項(xiàng)目C數(shù)據(jù)的輸入與輸出C語(yǔ)言流程控制數(shù)據(jù)類型、運(yùn)算符和表達(dá)式計(jì)算機(jī)程序基礎(chǔ)及基本概念程序的本質(zhì)廣義的講,為了實(shí)現(xiàn)一個(gè)特定的目標(biāo)而預(yù)先設(shè)計(jì)的一組可操作的工作步驟就可以稱之為一個(gè)程序

找工作:寫簡(jiǎn)歷投簡(jiǎn)歷筆試面試入職對(duì)于計(jì)算機(jī)系統(tǒng),簡(jiǎn)單的說(shuō),程序就是系統(tǒng)可以識(shí)別的一組有序的指令程序存儲(chǔ)在磁盤上,被加載到內(nèi)存中,計(jì)算機(jī)系統(tǒng)從內(nèi)存中逐條讀取指令并執(zhí)行程序=算法+數(shù)據(jù)結(jié)構(gòu)算法:解決問(wèn)題的方法和步驟,對(duì)操作的描述,是程序設(shè)計(jì)的靈魂。數(shù)據(jù)結(jié)構(gòu):對(duì)數(shù)據(jù)的描述,用來(lái)指定程序中的數(shù)據(jù)類型和數(shù)據(jù)的組織形式。程序設(shè)計(jì)語(yǔ)言概述程序設(shè)計(jì)語(yǔ)言:計(jì)算機(jī)能夠識(shí)別的語(yǔ)言,人與計(jì)算機(jī)交流的語(yǔ)言。程序設(shè)計(jì)語(yǔ)言分為:機(jī)器語(yǔ)言、匯編語(yǔ)言、高級(jí)語(yǔ)言。機(jī)器語(yǔ)言:直接使用機(jī)器指令(0,1序列)來(lái)設(shè)計(jì)程序,可以被計(jì)算機(jī)系統(tǒng)直接識(shí)別。匯編語(yǔ)言:把機(jī)器指令符號(hào)化,即通過(guò)一組簡(jiǎn)單的的符號(hào)來(lái)表示機(jī)器指令,更接近于自然語(yǔ)言,更容易理解和使用。不能被計(jì)算機(jī)系統(tǒng)直接識(shí)別,要轉(zhuǎn)化成機(jī)器語(yǔ)言后才能執(zhí)行。和機(jī)器語(yǔ)言一樣,開發(fā)工作量大,無(wú)法移植。高級(jí)語(yǔ)言:和特定的計(jì)算機(jī)系統(tǒng)無(wú)關(guān),更接近于人類自然語(yǔ)言。一條語(yǔ)句對(duì)應(yīng)多條機(jī)器指令,工作量小,開發(fā)效率高。同樣需要轉(zhuǎn)換成機(jī)器代碼后才能被計(jì)算機(jī)系統(tǒng)識(shí)別、執(zhí)行。BASIC,FORTRAN,PASCAL,C,C++C語(yǔ)言程序結(jié)構(gòu)組成C語(yǔ)言程序?qū)嵸|(zhì)是函數(shù)的集合。/*test.cThisisthefirstCprogram*/#include<stdio.h>voidmain(){

printf(“ThisisaCprogram!\n");}注釋信息預(yù)處理命令無(wú)返回值無(wú)參數(shù)、無(wú)返回值的主函數(shù)主函數(shù)名函數(shù)開始內(nèi)部函數(shù)名回車換行符函數(shù)調(diào)用函數(shù)體語(yǔ)句結(jié)束標(biāo)志函數(shù)結(jié)束函數(shù)運(yùn)行結(jié)果是:ThisisaCprogram!如何實(shí)現(xiàn)帶參數(shù)的主函數(shù)?C程序的編譯、鏈接與運(yùn)行Linux下,C語(yǔ)言源碼文件通過(guò)編譯、匯編與鏈接后生成可執(zhí)行文件elf文件,由操作系統(tǒng)加載到內(nèi)存中運(yùn)行。模塊化程序設(shè)計(jì)方法大型的C程序一般由多個(gè)源碼文件組成,通常把與實(shí)現(xiàn)一個(gè)功能相關(guān)的函數(shù)放在一個(gè)源碼文件里面,稱為一個(gè)模塊。/*main.c*/#include<stdio.c>#include<mymax.h>int

main(void){intx=10;

inty=20;

intz=0;z=max(x,y);

printf(“z:%d”,z);return0;}/*mymax.c*/#include<mymax.h>int

max(inta1,inta2){if(a1>a2)returna1returna2;}/*mymax.h*/externint

max(inta1,inta2)課程目標(biāo)實(shí)訓(xùn)項(xiàng)目C數(shù)據(jù)的輸入與輸出C語(yǔ)言流程控制數(shù)據(jù)類型、運(yùn)算符和表達(dá)式計(jì)算機(jī)程序基礎(chǔ)及基本概念C語(yǔ)言支持的數(shù)據(jù)類型數(shù)據(jù)類型構(gòu)造類型指針類型空類型(無(wú)值類型)void枚舉類型enum數(shù)組類型結(jié)構(gòu)類型struct聯(lián)合類型union基本類型整型int字符型char實(shí)型(浮點(diǎn)型)單精度實(shí)型

float雙精度實(shí)型

doubleC語(yǔ)言提供了以下一些數(shù)據(jù)類型:

常量與符號(hào)常量常量在程序運(yùn)行過(guò)程中,其值不能被改變的量稱為常量常量分為不同的類型:整型100,125,-100,0實(shí)型3.14,0.125,-3.789字符型‘a(chǎn)’,‘b’,‘2’字符串‘a(chǎn)’,‘a(chǎn)b’,‘1232’符號(hào)常量:用一個(gè)標(biāo)識(shí)符代表一個(gè)常量例如:#definePI3.1415926變量變量:在程序運(yùn)行過(guò)程中,其值可以被改變的量稱為變量;變量代表內(nèi)存中具有特定屬性的一個(gè)存儲(chǔ)單元。它用來(lái)存放數(shù)據(jù),這就是變量的值,在程序運(yùn)行期間,這些值是可以改變的。變量的類型實(shí)質(zhì)就是指存放在變量所代表的存儲(chǔ)單元中存放數(shù)據(jù)的數(shù)據(jù)類型,可以是C語(yǔ)言支持所有數(shù)據(jù)類型。變量的地址就是它所代表存儲(chǔ)單元的地址;變量的定義與使用C語(yǔ)言中:變量必須先定義,后使用定義變量時(shí)要指定變量名和數(shù)據(jù)類型變量應(yīng)該先賦值,后引用例如:inta,b,c;a=5;b=3;c=a+b;printf(“%d”,c);整型數(shù)據(jù)類型有符號(hào)整型無(wú)符號(hào)整型數(shù)據(jù)長(zhǎng)度int

unsigned[int]16或32位short[int]unsignedshort[int]16位long[int]unsignedlong[int]32位數(shù)據(jù)類型取值范圍有符號(hào)short(16位)-32768~32767

無(wú)符號(hào)unsignedshort(16位)0~65535

有符號(hào)int(32位)-2147483648~2147483647無(wú)符號(hào)unsignedint(32位)

0~4294967295

字符型數(shù)據(jù)類型字符具有數(shù)值特征'A'6501000001整型變量和字符變量的定義和賦值可以互換【ASCII碼范圍】charc;c='A';或c=65;int

i;i=65;或i='A';轉(zhuǎn)義字符以“\”開頭的特殊字符稱為轉(zhuǎn)義字符\n換行\(zhòng)t橫向跳格\r回車\\反斜杠\ddd

ddd表示1到3位八進(jìn)制數(shù)字\xhh

hh表示1到2位十六進(jìn)制數(shù)字例如:printf(“\n”);浮點(diǎn)型數(shù)據(jù)類型(實(shí)型數(shù)據(jù))實(shí)型(浮點(diǎn)型)數(shù)據(jù)單精度浮點(diǎn)型float(4字節(jié))雙精度浮點(diǎn)型double(8字節(jié))類型位數(shù)數(shù)的范圍有效數(shù)字位數(shù)float3210-37~10386~7位double6410-307~1030815~16位longdouble12810-4931~10493218~19位結(jié)構(gòu)體數(shù)據(jù)類型結(jié)構(gòu)體是一種構(gòu)造數(shù)據(jù)類型

用途:把不同類型的數(shù)據(jù)組合成一個(gè)整體-------自定義數(shù)據(jù)類型

引入結(jié)構(gòu)體的好處:加強(qiáng)數(shù)據(jù)項(xiàng)之間的聯(lián)系

如學(xué)生的基本信息,包括學(xué)號(hào)、姓名、性別、年齡、班級(jí)、成績(jī)等數(shù)據(jù)項(xiàng)。這些數(shù)據(jù)項(xiàng)描述了一個(gè)學(xué)生的幾個(gè)不同側(cè)面。

charno[9];//學(xué)號(hào)charname[20];//姓名charsex;//性別unsignedintage;//年齡unsignedint

classno;//班級(jí)floatgrade;//成績(jī)結(jié)構(gòu)體類型的定義和使用結(jié)構(gòu)體類型定義struct[結(jié)構(gòu)體類型名]{

數(shù)據(jù)類型名1成員名1;數(shù)據(jù)類型名2成員名2;

……

數(shù)據(jù)類型名n成員名n;};例:struct

Student_Info{charno[9];//學(xué)號(hào)

charname[20];//姓名

charsex;//性別floatgrade;//成績(jī)};定義結(jié)構(gòu)體變量struct

student_info

stuinfo;結(jié)構(gòu)體變量的引用:stuinof.grage=98.5;strcmp(,”guohui”);注意:訪問(wèn)結(jié)構(gòu)體變量只能訪問(wèn)結(jié)構(gòu)體變量的成員,不能整體訪問(wèn)結(jié)構(gòu)體變量聯(lián)合體(共用體)構(gòu)造數(shù)據(jù)類型,也叫共用體

用途:使幾個(gè)不同類型的變量共占一段內(nèi)存(相互覆蓋)聯(lián)合體定義union[聯(lián)合體類型名]{

數(shù)據(jù)類型名1成員名1;數(shù)據(jù)類型名2成員名2;

……

數(shù)據(jù)類型名n成員名n;};聯(lián)合體的大小是成員中占內(nèi)存最大的成員的大小

unionUData{shorti;charch;floatf;};unionUDatax;x.i=78;C語(yǔ)言運(yùn)算符概念及分類C的運(yùn)算符有以下幾類:(1)算術(shù)運(yùn)算符(+-*/%)(2)關(guān)系運(yùn)算符(><==>=<=?。剑?3)邏輯運(yùn)算符(?。Γ|)(4)位運(yùn)算符(<<>>~|∧&)(5)賦值運(yùn)算符(=及其擴(kuò)展賦值運(yùn)算符)(6)條件運(yùn)算符(?:)(7)逗號(hào)運(yùn)算符(,)(8)指針運(yùn)算符(*和&)(9)求字節(jié)數(shù)運(yùn)算符(sizeof)(10)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符((類型))(11)分量運(yùn)算符(.->)(12)下標(biāo)運(yùn)算符([])(13)其他(如函數(shù)調(diào)用運(yùn)算符())表達(dá)式概念及分類表達(dá)式:由運(yùn)算符和運(yùn)算對(duì)象(操作數(shù))組成的有意義的運(yùn)算式子,它的值和類型由參加運(yùn)算的運(yùn)算符和運(yùn)算對(duì)象決定。運(yùn)算符:具有運(yùn)算功能的符號(hào)運(yùn)算對(duì)象:常量、變量和函數(shù)等表達(dá)式算術(shù)表達(dá)式、賦值表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式、條件表達(dá)式和逗號(hào)表達(dá)式等

強(qiáng)制類型轉(zhuǎn)換運(yùn)算符可以利用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符將一個(gè)表達(dá)式轉(zhuǎn)換成所需類型。

一般形式:(類型名)(表達(dá)式)例如:(double)a將a轉(zhuǎn)換成double類型(int)(x+y)將x+y的值轉(zhuǎn)換成整型(float)(5%3)將5%3的值轉(zhuǎn)換成float型關(guān)系運(yùn)算符及關(guān)系表達(dá)式邏輯運(yùn)算符及邏輯表達(dá)式位運(yùn)算符復(fù)合運(yùn)算符條件運(yùn)算符條件運(yùn)算符"?:"

條件運(yùn)算符"?:"是一個(gè)三目運(yùn)算符,其運(yùn)算的一般形式是:<表達(dá)式1>?<表達(dá)式2>:<表達(dá)式3>例如,

intx=82,y=101;x>=y?x+18:y-100//運(yùn)算結(jié)果為1x<(y-11)?x-22:y-1//運(yùn)算結(jié)果為60長(zhǎng)度運(yùn)算符sizeof長(zhǎng)度運(yùn)算符

sizeof單目運(yùn)算符,計(jì)算變量或數(shù)據(jù)類型的字節(jié)長(zhǎng)度inta;sizeof(a)求整型變量a的長(zhǎng)度,值為4(bytes)sizeof(int)求整型的長(zhǎng)度,值為4(bytes)sizeof(double)求雙精度浮點(diǎn)型的長(zhǎng)度,值為8(bytes)課程目標(biāo)實(shí)訓(xùn)項(xiàng)目C數(shù)據(jù)的輸入與輸出C語(yǔ)言流程控制數(shù)據(jù)類型、運(yùn)算符和表達(dá)式計(jì)算機(jī)程序基礎(chǔ)及基本概念if…else…語(yǔ)句if(表達(dá)式)

語(yǔ)句塊1 else

語(yǔ)句塊2例:if(x>y)z=xelsez=yif…elseif…else…語(yǔ)句

if(表達(dá)式1)語(yǔ)句塊1 elseif(表達(dá)式2)語(yǔ)句塊2 elseif(表達(dá)式3)語(yǔ)句塊3 elseif(表達(dá)式4)語(yǔ)句塊4 ... else語(yǔ)句塊nif語(yǔ)句的嵌套

if() if()語(yǔ)句塊1 else語(yǔ)句塊2 else if()語(yǔ)句塊3 else 語(yǔ)句塊4if語(yǔ)句中if與else的配對(duì)關(guān)系為else總是與它上面的最近的if配對(duì).switch語(yǔ)句switch(表達(dá)式){case常量表達(dá)式1:語(yǔ)句塊1;break;case常量表達(dá)式2:語(yǔ)句塊2;break;….case常量表達(dá)式n:語(yǔ)句塊n;break;default :語(yǔ)句塊n+1}for語(yǔ)句構(gòu)成循環(huán)

例如:求將變化為:for(i=1;i<=100;i++){ sum=sum+i;}循環(huán)語(yǔ)句While循環(huán)例如:求

intmain() {

inti=1,sum=0;

while(i<=100){ sum=sum+i; i++;

}

printf(“%d”,sum);return

0; }break語(yǔ)句用于從循環(huán)體內(nèi)跳出循環(huán)體,即提前結(jié)束循環(huán)。break只能用在循環(huán)語(yǔ)句和switch語(yǔ)句中.for(r=1;r<=10;r++){area=pi*r*r;if(area>100)break;

printf(“%f”,area);

}continue語(yǔ)句結(jié)束本次循環(huán),接著判定下一次是否執(zhí)行循環(huán)。continue與break的區(qū)別:continue只結(jié)束本次循環(huán),而break終止本層循環(huán).例:intmain(){

intn;

for(n=100;n<=200;n++){if(n%3==0)continue;

printf(“%d”,n);}}課程目標(biāo)實(shí)訓(xùn)項(xiàng)目C數(shù)據(jù)的輸入與輸出C語(yǔ)言流程控制數(shù)據(jù)類型、運(yùn)算符和表達(dá)式計(jì)算機(jī)程序基礎(chǔ)及基本概念格式化輸出函數(shù)printfprintf輸出函數(shù)用來(lái)向控制臺(tái)輸出格式化字符串。函數(shù)原型:int

printf(constchar*format,...);format參數(shù)用來(lái)指定輸出格式,格式控制說(shuō)明符號(hào)%。例:

intx=4floaty=3.5charstr[]=“hello”

printf(“x=%d\n”,x);

printf(“y=%f\n”,y);

printf(“str=%s\n”,str);常用格式轉(zhuǎn)換說(shuō)明符轉(zhuǎn)換說(shuō)明輸出%c一個(gè)字符%d有符號(hào)10進(jìn)制數(shù)%f浮點(diǎn)數(shù),10進(jìn)制數(shù)%s字符串%x16進(jìn)制輸出%u無(wú)符號(hào)10進(jìn)制數(shù)%ld表示一個(gè)longint類型數(shù)值%digit輸出的字段寬度,例如%4d%.digit精度,例如:%5.2f,打印一個(gè)浮點(diǎn)數(shù),字段寬度為5,小數(shù)點(diǎn)后2個(gè)數(shù)字。格式化輸入函數(shù)scanf

scanf格式化輸入函數(shù)用來(lái)從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)讀取信息。函數(shù)原型:int

scanf(constchar*format,…);format參數(shù)用來(lái)指定輸出格式,格式控制

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論