版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
#defineSECONDS_PER_YEAR(60*60*24*•#define語(yǔ)法的基本知識(shí)(例如:不能以分號(hào)結(jié)束,括號(hào)的使用,等等•懂得預(yù)處理器將為你計(jì)算常數(shù)表達(dá)式的值,因此,直接寫出你是如何計(jì)算一年中•;這個(gè)表達(dá)式將使一個(gè)16位機(jī)的整型數(shù)溢出‐因此要用到長(zhǎng)整型符號(hào)L,告訴;;•;標(biāo)識(shí)#define在宏中應(yīng)用的基本知識(shí)。這是很重要的,因?yàn)橹钡角度?inline)操作•;C語(yǔ)言中的原因是它使得編譯器能產(chǎn)生;;?least=MIN(*p++,{{goto一個(gè)想進(jìn)入新領(lǐng)域的BASIC/FORTRAN程序員。數(shù)據(jù)(Data一個(gè)指向整型數(shù)的指針(Apointertoan一個(gè)指向指針的的指針,它指向的指針是指向一個(gè)整型數(shù)(Apointertoapointertoanintege)r10個(gè)整型數(shù)的數(shù)組(Anarrayof1010個(gè)整型數(shù)數(shù)組的指針(Apointertoanarrayof10一個(gè)指向函數(shù)的指針,該函數(shù)有一個(gè)整型參數(shù)并返回一個(gè)整型數(shù)(Apointertoafunctionthattakesanintegerasanargumentandreturnsaninteger)10個(gè)指針的數(shù)組,該指針指向一個(gè)函數(shù),該函數(shù)有一個(gè)整型參數(shù)并返回一個(gè)整型(Anarrayoftenpointerstofunctionsthattakeanintegerargumentandreturnaninteger)inta;//Anint*a;//Apointertoanint**a;//Apointertoapointertoaninta[10];//Anarrayof10int*a[10];//Anarrayof10pointerstoint(*a)[10];//Apointertoanarrayof10int(*a)(int);//Apointertoafunctionathattakesanintegerargumentandreturnsanintegerint(*a[10])(int);//Anarrayof10pointerstofunctionsthattakeanintegerargumentandreturnaninteger這個(gè)簡(jiǎn)單的問(wèn)題很少有人能回答完全。在C語(yǔ)言中,關(guān)鍵字static有三個(gè)明顯的作用:•;在函數(shù)體,一個(gè)被為靜態(tài)的變量在這一函數(shù)被調(diào)用過(guò)程中維持其值不變。•;在模塊內(nèi)(但在函數(shù)體外一個(gè)被為靜態(tài)的變量可以被模塊內(nèi)所用函數(shù)訪stemsProgramming)const能做什么和不能做什么.如果你從沒(méi)有constinta;intconsta;constint*a;int*constintconst*a是,整型數(shù)是不可修改的,但指針可以a是一個(gè)指向整型數(shù)的常指針(也就是說(shuō),指針指向的整型數(shù)是可以修改的,但指針是不可修改的a是一個(gè)const,也還是能很容易寫出功能正確的程序,那么我為什么還要如此看重關(guān)鍵字const呢?我也如下的幾下理由:•;通過(guò)給優(yōu)化器一些附加的信息,使用關(guān)鍵字const也許能產(chǎn)生更緊湊的代碼。;;止其被無(wú)意的代碼修改。簡(jiǎn)而言之,這樣可以減少bug的出現(xiàn)。個(gè)變量的值,而不是使用保存在寄存器里的備份。下面是volatile變量的幾個(gè)例子:•;并行設(shè)備的硬件寄存器(如:狀態(tài)寄存器)•;一個(gè)中斷服務(wù)子程序中會(huì)到的非自動(dòng)變量(Non‐automaticvariables)•;多線程應(yīng)用中被幾個(gè)任務(wù)共享的變量基本的問(wèn)題。搞嵌入式的家伙們經(jīng)常同硬件、中斷、RTOS等等打交道,所有這些都要求用下這家伙是不是直正懂得volatile完全的重要性。;;;;•;{return*ptr*};;變。它是const因?yàn)槌绦虿粦?yīng)該試圖去修改它。;;fer的指針時(shí)。•;這段代碼有點(diǎn)。這段代碼的目的是用來(lái)返指針*ptr指向值的平方,但是,由于*ptr指向一個(gè)volatile型參數(shù),編譯器將產(chǎn)生類似下面的代碼:{inta=b=*ptr;returna*b;}{inta=*ptr;returna*a;}位操作(Bit第一個(gè)設(shè)置abit3,第二個(gè)清除abit3。在以上兩個(gè)操作中,要保持其它位不變。;;•;bitfieldsn為其較復(fù)雜的通信寫的驅(qū)動(dòng)程序,它用到了bitfields因此完全對(duì)我無(wú)用,因?yàn)槲业?#8226;;#definesbitmasks操作。這是一個(gè)有極高可移植性的方法,是應(yīng)該被用#defineBIT3(0x1<<staticint{a|=}{a&=}0x67a90xaa66ANSI編譯器。寫代intptr=(int*ptr=Amoreobscureapproach*(int*const)(0x67a9)=C支持中斷。具代表事實(shí)是,產(chǎn)生了一個(gè)新的關(guān)鍵字interrupt。下面的代碼就使用了interrupt關(guān)鍵字去定義了一個(gè)中斷服務(wù)子程序(ISR),請(qǐng)?jiān)u論一下這段代碼的。interruptdoublecompute_area(double{doublearea=PI*radius*radius;printf("\nArea=%f",area);returnarea;}•;ISR不能傳遞參數(shù)。如果你沒(méi)有看到這一點(diǎn),你被雇用的機(jī)會(huì)等同第一項(xiàng)。•;在許多的處理器/編譯器中,浮點(diǎn)一般都是不可重入的。有些處理器/編譯器需要是短而有效率的,在ISR中做浮點(diǎn)運(yùn)算是不明智的。•;與第三點(diǎn)一脈相承,printf()經(jīng)常有重入和性能上的問(wèn)題。如果你丟掉了第三和void{unsignedinta=intb=(a+b>6)?puts(">6"):puts("<=}‐20變成了一個(gè)非常大unsignedintzero=unsignedintcompzero=/*1'scomplementofzerounsignedintcompzero=問(wèn)題,這些問(wèn)題是比較難的,僅僅非常優(yōu)秀的應(yīng)試者能做得不錯(cuò)。提出這些問(wèn)題,我希動(dòng)態(tài)內(nèi)存分配(DynamicmemoryESP雜志中被廣泛地討論過(guò)了(主要是P.J.Plauger,他的解釋遠(yuǎn)遠(yuǎn)超過(guò)我這里能提到charif((ptr=(char*)malloc(0))==puts("Gotanullpointer");puts("Gotavalidpointer");法的指針之后,我才想到這個(gè)問(wèn)題。這
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 熟食凈菜配送服務(wù)
- 科技企業(yè)租賃合同模板
- 化工企業(yè)計(jì)劃生育承諾書樣本
- 醫(yī)學(xué)研究彩超機(jī)租賃合同
- 醫(yī)院綠化帶圍墻施工協(xié)議
- 服務(wù)器租賃合作合同
- 城市交通信號(hào)暫行管理辦法
- 煙草行業(yè)托盤租賃協(xié)議
- 生態(tài)農(nóng)業(yè)科技園建設(shè)合同
- 教育信息化項(xiàng)目招投標(biāo)要點(diǎn)解析
- 大班音樂(lè)《小老鼠和泡泡糖》課件
- 12、口腔科診療指南及技術(shù)操作規(guī)范
- 四年級(jí)上冊(cè)Unit1 My classroom作業(yè)設(shè)計(jì)案例
- 孕產(chǎn)婦妊娠風(fēng)險(xiǎn)篩查與評(píng)估
- 走出舒適區(qū):如何突破自我設(shè)限獲得持久行動(dòng)力
- 人居環(huán)境科學(xué)講義
- 中國(guó)成人患者腸外腸內(nèi)營(yíng)養(yǎng)臨床應(yīng)用指南(2023版)
- 幼兒園心理健康教育課件含教案-《情緒》課件
- 折翼的精靈:青少年自傷心理干預(yù)與預(yù)防
- 2023年資產(chǎn)負(fù)債表模板
- 初三化學(xué)上學(xué)期氧氣-課件
評(píng)論
0/150
提交評(píng)論