版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基本 C 語(yǔ)言基礎(chǔ)題 1 . 用預(yù)處理指令#define 聲明一個(gè)常數(shù),用以表明 1 年中有多少秒(忽略閏年問(wèn)題) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在這想看到幾件事情: #define 語(yǔ)法的基本知識(shí)(例如:不能以分號(hào)結(jié)束,括號(hào)的使用,等等) 懂得預(yù)處理器將為你計(jì)算常數(shù)表達(dá)式的值,因此,直接寫出你是如何計(jì)算一年中 有多少秒而 不是計(jì)
2、算出實(shí)際的值,是更清晰而沒(méi)有代價(jià)的。 意識(shí)到這個(gè)表達(dá)式將使一個(gè) 16 位機(jī)的整型 數(shù)溢出‐ 因此要用到長(zhǎng)整型符號(hào) L, 告訴編 譯器這個(gè)常數(shù)是的長(zhǎng)整型數(shù)。如果你在你的表達(dá)式中用到 UL(表示無(wú)符號(hào)長(zhǎng)整型),那么你有了一個(gè)好的起點(diǎn) 。記住,第一印象很重要。 2 . 寫一個(gè)“標(biāo)準(zhǔn)”宏 MIN ,這個(gè)宏輸入兩個(gè)參數(shù)并返回較小的一個(gè)。 #define MIN(A,B) ((A) <= (B) ? (A) :
3、 (B)) 這個(gè)測(cè)試是為下面的目的而設(shè)的: 標(biāo)識(shí)#define 在宏中應(yīng)用的基本知識(shí)。這是很重要的,因?yàn)橹钡角度?inline) 操作 符變?yōu)闃?biāo)準(zhǔn) C 的一部分,宏是方便產(chǎn)生嵌入代碼的唯一方法,對(duì)于 嵌入式系統(tǒng)來(lái)說(shuō),為了能 達(dá)到要求的性能,嵌入代碼經(jīng)常是必須的方法。 三重條件操作符的 知識(shí)。 這個(gè)操作符存在 C 語(yǔ)言中的原因是它使得編譯器能產(chǎn)生比 f ‐ then ‐ else 更優(yōu)化的代碼, 了解這個(gè)用法是很重要的。懂得在宏中小
4、心地把參數(shù)用括號(hào)括起來(lái) 我也用這個(gè)問(wèn)題開(kāi)始討論宏的副作用, 例如: 當(dāng)你寫下面的代碼時(shí)會(huì)發(fā)生什么事 ? least = MIN(*p++, b); 3. 預(yù)處理器標(biāo)識(shí)#error 的目的是什么? 如果你不知道答案, 請(qǐng)看參考文獻(xiàn) 1。 這問(wèn)題對(duì)區(qū)分一個(gè)正常的伙計(jì)和一個(gè)書(shū)呆子是很有用 的。只有書(shū)呆子才會(huì)讀 C 語(yǔ)言課本的附錄去找出象這種問(wèn)題的答案。當(dāng)然如果你不是在一 個(gè)書(shū)呆子,那么應(yīng)試者最好希望自己不要知道答案。 死
5、循環(huán)(Infinite loops) 4. 嵌入式系統(tǒng)中經(jīng)常要用到無(wú)限循環(huán),你怎么樣用 C 編寫死循環(huán)呢? 這個(gè)問(wèn)題用幾個(gè)解 決方案。我首選的方案是: while(1) { } 一些程序員更喜歡如下方案: for(;;) { } 這個(gè)實(shí)現(xiàn)方式讓我為難,因?yàn)檫@個(gè)語(yǔ)法沒(méi)有確切表達(dá)到底怎么回事。如果一個(gè)應(yīng)試者給出這 個(gè)作為方案,我將用這個(gè)作為一個(gè)機(jī)會(huì)去探究他們這樣做的基本原理。如果他們的基本答案 e) i
6、nt *a[10]; // An array of 10 pointers to integers f) int (*a)[10]; // A pointer to an array of 10 integers g) int (*a)(int); // A pointer to a function a that takes an
7、 integer argu ment an d returns an integer h) int (*a[10])(int); // An array of 10 pointers to functions that take an integ er argument and return an integer 人們經(jīng)常聲稱這里有幾個(gè)問(wèn)題是那種要翻一
8、下書(shū)才能回答的問(wèn)題,我同意這種說(shuō)法。當(dāng)我寫 這篇文章時(shí),為了確定語(yǔ)法的正確性,我的確查了一下書(shū)。但是當(dāng)我被面試的時(shí)候,我期望 被問(wèn)到這個(gè)問(wèn)題(或者相近的問(wèn)題)。因?yàn)樵诒幻嬖嚨倪@段時(shí)間里,我確定我知道這個(gè)問(wèn)題 的答案。應(yīng)試者如果不知道所有的答案(或至少大部分答案),那么也就沒(méi)有為這次面試做 準(zhǔn)備,如果該面試者沒(méi)有為這次面試做準(zhǔn)備,那么他又能為什么出準(zhǔn)備呢? Static 6. 關(guān)鍵字 static 的作用是什么? 這個(gè)簡(jiǎn)
9、單的問(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ù)訪 問(wèn),但不能被模塊外其它函數(shù)訪問(wèn)。它是一個(gè)本地的全局變量。 在模塊內(nèi),一個(gè)被聲明為靜態(tài)的函數(shù)只可被這一模塊內(nèi) 的其它函數(shù)調(diào)用。那就是 ,這個(gè)函數(shù)被限制在聲明它的模塊的本地范圍內(nèi)使用。 大多數(shù)應(yīng)試 者能正確回答第一
10、部分,一部分能正確回答第二部分,同是很少的人能懂得第三 部分。這是 一個(gè)應(yīng)試者的嚴(yán)重的缺點(diǎn),因?yàn)樗@然不懂得本地化數(shù)據(jù)和代碼范圍的好處和重 要性。 7 .關(guān)鍵字 const 有什么含意? 我只要一聽(tīng)到被面試者說(shuō): “const 意味著常數(shù)” , 我就知道我正在和一個(gè)業(yè)余者打交道。去年 Dan Saks 已經(jīng)在他的文章里完全概括了 const 的所有用法,因此 ESP( 譯者: Embedded Systems Progra
11、mming) 的每一位讀者應(yīng)該非常熟悉 const 能做什么和不能 做什么.如果你從沒(méi)有 讀到那篇文章,只要能說(shuō)出 const 意味著“只讀”就可以了。盡管這 個(gè)答案不是完全的答案 ,但我接受它作為一個(gè)正確的答案。(如果你想知道更詳細(xì)的答案, 仔細(xì)讀一下 Saks 的文章 吧。) 如果應(yīng)試者能正確回答這個(gè)問(wèn)題,我將問(wèn)他一個(gè)附加的問(wèn)題: 下面的聲明都是什么意思? const int a; int const a; c
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語(yǔ)言面試題總匯(基礎(chǔ)題嵌入式微軟華為思科……)
- 嵌入式c語(yǔ)言面試題匯總(超經(jīng)典)
- 重解幾道華為經(jīng)典c語(yǔ)言面試題
- c,c++面試題目總匯
- 崗位面試-net面試題大全包括微軟、華為、中興等大企業(yè)的面試真題
- c語(yǔ)言高級(jí)面試題
- 華為常用面試題
- c++基礎(chǔ)面試題
- 華為測(cè)試面試題
- 華為軟件面試題
- c語(yǔ)言面試題大匯總1
- 華為英語(yǔ)口語(yǔ)面試題
- 華為硬件工程師面試題
- java基礎(chǔ)面試題
- 經(jīng)典c++面試題
- 通信基礎(chǔ)面試題
- c#面試題收集
- php面試題總匯--整理完整版
- gamesloft c++面試題目
- 華為嵌入式軟件工程師試題匯
評(píng)論
0/150
提交評(píng)論