17 C C 程式設計規範精述

2022-02-12 16:09:26 字數 1881 閱讀 7299

c/c++

程式設計規範

精述(匈牙利命名法)

1、排版上不同小結構間要空行分開,子邏輯項相對父邏輯項要縮排;{及if,

while

等判斷語句應獨佔行並對齊,且後加空格以顯突出。

2、注釋位於相應**上面或右旁邊。且與其它**空行或空格隔開。

3、變數命名風格:採用

unix

的全小寫加下劃線的風格或大小寫混排的方式,不要使用大小寫與下劃線混排的方式,但用作特殊標識如標識成員變數或全域性變數的m_和

g_,其後加上大小寫混排的方式是允許的。

定義識別符號(變數名/

函式名)應體現

code is document

:型別的第乙個字母小寫組合

+ 有意義的單詞。全域性變數和函式名前應加模組名。

如dword dwsum = 0;

定義變數應當初始化,尤其是在使用前。

全域性變數/

靜態變數要注意可重入性(經過處理才可以)。結構定義應當盡是以

4位元組(32位

cpu乙個指令就可以訪問)對齊的。

typedef

結構體時,不應當只定義指標。

注意一下巨集定義:#define mpplnx_dump_read_write_cdb(x) ...

注:可重入性是指函式可以被多個任務程序呼叫;乙個可重入的函式簡單來說就是可以被中斷的函式,也就是可以在這個函式執行的任何時刻中斷它,os

排程轉入去執行另外一段**,而返回控制時不會出現錯誤;而不可重入的函式由於使用了一些系統資源,比如全域性變數區,中斷向量表等,所以它如果被中斷的話,可能會出現問題。

滿足下列條件的函式多數是不可重入的:

1) 函式體內使用了靜態的資料結構;

2) 函式體內呼叫了

malloc()

或者free()

函式;3) 函式體內呼叫了標準

i/o函式。

4、語句結構上,涉及有意義的常量,應當用列舉或巨集來代替;常量放在變數的左邊;用小括號來體現優先順序。

<<

等邏輯關鍵字前後加空格。函式功能應當單一。

輸入引數的合法性檢查:

1)外部模組或者使用者輸入的引數;

2)從物理鏈路上接收到的資料。

5、可測性上,**自始至終只有乙份,不存在開發版本和測試版本;測試與最終發行的版本是通過編譯開關的不同來實現,編譯開關要規範統一。

使用斷言來發現軟體問題;注意:在release

版本下,

assert

被定義成空操作(不執行),所以如下寫法是不對的:

assert(e1t1_ok == e1t1_setdefaultframingmode());

6、程式效率上,迴圈體內工作量最小化,被訊號量保護的區域應該盡可能小。

7、質量上,記憶體分配上,一般秉承誰申請,誰釋放,也樣:檔案控制代碼;尤其是有異常退出的地方。記憶體釋放後,一定要把指標置為

null

。記憶體越界問題。

unix下,多執行緒的中的子執行緒退出必需採用主動退出方式,即子執行緒應

return

出口。不要濫用不等於禁止使用。goto

使用的注意事項:

• single entry, single exit? – use goto

• don』t use more than one goto labels

• use goto』s that go forward, not backward

• make sure a goto doesn』t create unreachable code

用巨集定義表示式時,要使用完備的括號;引數可能發生變化的表示式不要使用巨集。

8、類屬性的宣告應按照如下順序常量 -> 靜態變數 -> 非靜態變數public -> protected -> private

17 C C 程式設計規範精述

c c 程式設計規範精述 匈牙利命名法 1 排版上不同小結構間要空行分開,子邏輯項相對父邏輯項要縮排 及if,while 等判斷語句應獨佔行並對齊,且後加空格以顯突出。2 注釋位於相應 上面或右旁邊。且與其它 空行或空格隔開。3 變數命名風格 採用 unix 的全小寫加下劃線的風格或大小寫混排的方式...

C C 程式設計規範

1 注意 strncpy strncat等帶n版本的字串操作函式在源字串長度超出n標識的長度時,會將包括 0 結束符在內的超長字串截斷,導致 0 結束符丟失。這時需要手動為目標字串設定 0 結束符。char dst 11 注意 最好每次定義時初始化為0 dst 11 char src 0123456...

c c 的程式設計規範

乙個程式設計師的編碼水平如何,從他寫的 的風格,布局就可以看出來。所以良好的編碼風格是非常重要的。清晰易讀的 才是高質量的 下面是我從網上找到的乙個關於編碼風格的帖子。對於程式設計的初學者比較有用,高手就不必瀏覽了。一 每日編寫如此之多的 很多同學現在的想法是,我要實現功能,實現了功能以後,萬事大吉...