聆聽大師的聲音 EFC

2021-04-16 20:27:53 字數 1586 閱讀 1356

1.使用const和inline而不是#define

define可以做成全域性的,static const做成全域性的則有欠物件導向。

define需要一致的使用方式,否則和散落在各處的static const一樣難以修改(和魔術數字遇到同樣的問題)

建議define單放在乙個檔案中並且使用嚴格編碼規範保證按照設計思路使用。

const物件導向的做法是封裝成class中的static成員變數,但這樣需要額外定義。

封裝成class的const使用起來需要較長引用名,但是可以不同用途資料使用不同的類,方便管理、修改。

總之,魔術數字隱患很大,但是要避免魔術數字,並不是define或const可以解決的,需要嚴格的編碼規範和執行力度。

2.盡量使用而不是

printf和scanf我基本不用了,可是stdio思想的東西,我還是一直在用,譬如sprintf_s,而且已經碰到了問題,sprintf_s引數不對的時候編譯器不會給出任何提示,當程式crash掉的時候,你發現,原來sprintf_s的引數少了乙個。所以,我一直一來試圖使用stream(包括strstream)替換stdio的東西,但是碰到了其他問題。

iostream還是會在型別上出問題,譬如你想把乙個char型別的資料輸出的時候,iostream可能輸出了乙個無法顯示的字元,在這個時候,強制轉換成int再輸出可以得到正確的顯示結果。

和是完全不同的兩個東西可以幫助理解h的區別。

3.盡量使用new和delete而不用malloc和free

這之中最大的差別在於構造、析構函式,還有乙個就是使用的時候不要交叉。

另外注意在使用place new的時候,這兩者的區別可以被利用。

4.盡量使用c++風格的注釋

其實我已經拒絕使用c風格的注釋了,只不過沒有意識到把這個東西做成規範。在當今c++編譯器支援下,迴避任何使用c風格的注釋是個不錯的主意。

5.對應的new和delete要採用相同的形式

這點知道delete和delete區別的人都知道,但實際使用時要不出問題,可就沒這麼容易了。

因為typedef可以隱藏實際型別。

6.析構函式裡對指標成員呼叫delete

對於指標,初始化為null就可以放心使用delete而不用關心是否用new操作過。

7.預先準備好記憶體不夠的情況

其實new和delete就是呼叫目標類的operator new和operator delete,明白這一點對理解修改new行為很有幫助。

8.寫opertor new和operator delete時要遵循常規

當new失敗的時候,它會交給出錯處理函式,並期望出錯處理函式可以解決這個問題,然後繼續呼叫new方法。也就是說,new如果經由出錯處理函式操作,那再操作返回的時候new會再被呼叫一次。自己寫operator new的時候,也應該遵循這個規則。

9.避免隱藏標準形式的new

在類內部定義了operator new,則隱藏了對系統new的呼叫。

10.如果寫了operator new就要同時寫operator delete

這主要是在使用小記憶體分配策略的時候出的問題,你可以在new中使用小記憶體分配策略獲取記憶體,但是如果不重寫delete,則預設delete操作了特定策略的小記憶體塊,會引發記憶體問題。

聆聽心中的聲音,長安汽車和你共享高山流水的情誼

在孤單的人生中,誰可以仔細聆聽你心中的聲音?展望未來,誰又可以真正領略你心中的精彩?青山綠水之間,是時候彈奏一首高山流水去響徹山谷。如果可以得到俞伯牙與鍾子期共同欣賞的那乙份情感,人的一生便不會再有遺憾,如果你有一款屬於自己的長安汽車,同樣也可以領略到真正的美好,而全新的長安cs75 plus則會伴...

adolbook14美聲大師 讓聲音充滿想象力

出道兩年,陳立農的成長印記從未停止。從成團到解散,從 到綜藝,農農的每一次出現都讓農糖們驚喜不已。如今,農農順利簽約環球 未來的 之路更是讓人期待感滿滿。農農代言的adolbook14 更是作為橋梁,充滿想象力的音效表現將農農的蜜嗓與農糖緊密連線在一起。搭載sonicmaster美聲大師音效系統的a...

聆聽夏天的風

有人說,是熱情的太陽送來了夏日 也有人說,是溫柔的夏風帶來了夏日。太陽和夏風,帶來了一首綠色的詩,書寫在鄉村的山巒上 田野間。夏天的風宛如一位玉樹臨風的帥哥,他一到來,看呀,滿世界的女子都妝扮了起來 田野上鋪上了綠色的地毯,歡迎他在上面曼妙舞蹈 樹兒著上了青綠的裙子,期盼著帥哥柔輕的愛撫 姑娘們如同...