寫面試程式需要注意

2021-05-25 00:01:34 字數 1572 閱讀 5134

這麼乙個小不點的函式,他從三個方面考查:

(1)程式設計風格;

(2)出錯處理;

(3)演算法複雜度分析(用於提高效能)。

【規則1-2-1】為了防止標頭檔案被重複引用,應當用ifndef/define/endif結構產生預處理塊。

【建議1-2-2】不提倡使用全域性變數,盡量不要在標頭檔案中出現象extern int value 這類宣告。

【建議2-2-1】盡可能在定義變數的同時初始化該變數(就近原則)

注釋的位置應與被描述的**相鄰,可以放在**的上方或右方,不可放在下方。

當**比較長,特別是有多重巢狀時,應當在一些段落的結束處加注釋,便於閱讀

i,j,k,m,n,x,y,z等,它們通常可用作函式內的區域性變數。

【規則3-1-4】程式中不要出現僅靠大小寫區分的相似的識別符號。

變數的名字應當使用「名詞」或者「形容詞+名詞」。

【建議3-1-1】盡量避免名字中出現數字編號,

【規則4-1-1】如果**行中的運算子比較多,用括號確定表示式的操作順序

【規則4-3-3】不可將浮點變數用「==」或「!=」與任何數字比較。

x>=10-epsinon&&x<=10+epsinon

對照0看 要是x是 -100 誤差是0.0001呢

【建議4-4-1】在多重迴圈中,如果有可能,應當將最長的迴圈放在最內層,最短的迴圈放在最外層,

【規則4-5-1】不可在for 迴圈體內修改迴圈變數,防止for 迴圈失去控制。

【建議4-5-1】建議for語句的迴圈控制變數的取值採用「半開半閉區間」寫法

【規則5-2-1】在c++ 程式中只使用const常量而不使用巨集常量,即const常量完全取代巨集常量。

*【規則6-1-4】如果輸入引數以值傳遞的方式傳遞物件,則宜改用「const &」方式來傳遞,這樣可以省去臨時物件的構造和析構過程,從而提高效率。

【規則6-3-2】在函式體的「出口處」,對return語句的正確性和效率進行檢查。

如果函式有返回值,那麼函式的「出口處」是return語句。我們不要輕視return語句。如果return語句寫得不好,函式要麼出錯,要麼效率低下。

注意事項如下:

(1)return語句不可返回指向「棧記憶體」的「指標」或者「引用」,因為該內存在函式體結束時被自動銷毀。例如

char * func(void)

(2)要搞清楚返回的究竟是「值」、「指標」還是「引用」。

(3)如果函式返回值是乙個物件,要考慮return語句的效率。例如

return string(s1 + s2);

這是臨時物件的語法,表示「建立乙個臨時物件並返回它」。不要以為它與「先建立乙個區域性物件temp並返回它的結果」是等價的,如

string temp(s1 + s2);

return temp;

實質不然,上述**將發生三件事。首先,temp物件被建立,同時完成初始化;然後拷貝建構函式把temp拷貝到儲存返回值的外部儲存單元中;最後,temp在函式結束時被銷毀(呼叫析構函式)。然而「建立乙個臨時物件並返回它」的過程是不同的,編譯器直接把臨時物件建立並初始化在外部儲存單元中,省去了拷貝和析構的化費,提高了效率。

平時寫c 程式需要注意什麼

記一些幾年前寫c 經常會犯的一些錯誤,想到了其他的後面再加上 1 變數 函式命名不規範。如果乙個變數命名隨意,比如表示乙個學生的年紀,如果這樣定義int a 相信乙個月後自己再看 都不知道a表示什麼意思,如果用int age 來表示,就清晰很多了。再說函式,如果需要乙個連線資料庫的函式,寫成conn...

匯程式設計序需要注意的 寫程式要有套路

assume cs codesg codesg segment start mov bx,1000h mov ds,bx mov al,0 mov ax,4c00h int 21h codesg ends end經常在將寫程式的時候,要有套路,當理解不了的時候,先不用去理解,把套路放在那裡。以後會明...

HR面試,你需要注意什麼?

公司的面試流程一般是筆試 技術面試 hr面試,在大部分應聘測試工程師這種技術崗的應聘者理解中,通常認為通過技術面試了,後面的hr面試基本就是走流程過形式。也正因如此,我們習慣性地把精力投入到技術面試,而忽略了人事面試。為什麼面試感覺不錯,可後來一直沒有回音?也許這就是問題所在。以下憑個人經驗給大家總...