通過老師評論作出修改,相比於以前簡略的代碼規範,此次花時間專門瞭解學習了一下其餘大公司/開發者的代碼規範,規範更完善了一些;html
儘可能不要引用沒必要要的庫,包括沒必要要的頭文件,或引用沒必要要的程序集。注重細節可以減小生成時間,最小化出錯概率,並給讀者一個良好的印象。程序員
縮進使用4個空格的方式。算法
儘可能減小使用全局變量。爲了正確的使用全局變量,通常是將他們做爲參數傳入函數。不要在函數或類內部直接引用全局變量,由於這會引發一個反作用:在調用者不知情的狀況下改變了全局變量的狀態。這對於靜態變量一樣適用。若是須要修改全局變量,應該將其做爲一個輸出參數,或返回其一份全局變量的拷貝。編程
在最小的,包含該局部變量的做用域塊內聲明它。通常若語言容許,就僅在使用前聲明它們,不然就在做用域塊的頂端聲明,並必定在聲明變量的時候初始化它們,並儘可能在聲明和初始化或賦值置於同一行代碼內。windows
在複雜的條件表達式中,用括號清楚的表示邏輯優先級。ide
在定義不一樣變量或對多個變量進行賦值時不要放在一行上,即多條語句不要放在一行上。程序結構風格使用斷行和空白的{ }行,在程序調試時期須要單步執行須要斷行,在程序複雜代碼量大時空白{ }使結構清晰明瞭。每行代碼限定爲80字符寬,當一行裝不下內容時,須要進行折行。函數
折行規則:學習
1. 在分號處折行; 2.在操做符前折行。操做符包括+,-,*,/,左括號,逗號,」&&」,」||」,問號,冒號,例外的狀況是在逗號後折行; 3.當函數聲明、定義、調用或 enum 聲明中枚舉操做符的參數列表參數較多,不能置於一行,則將每個列表元素置於單獨的一行;
i : 在每一函數定義代碼段前,應該有一段註釋,用於說明該函數的函數名,函數功能描述,輸入參數描述,輸出變量說明,算法描述。例:編碼
/* *-------------------------------------------------------------------------------- * Member Name : 成員函數名 * Function Description : 功能描述 * Parameter Specification : 輸入參數描述 * Return Specification : 返回變量說明 * Algorithm : 算法描述 * Addtion : 附加說明,如調用說明,前置條件,後置條件。 *-------------------------------------------------------------------------------- */
ii : 關鍵修改的地方應加註釋說明。idea
/* * Revision : 修改版本 * Revision Date and Time : 修改日期與時間 * Mender : 修改人 * Revision Description : 修改內容簡要描述 */
i : 全部的類型/類/函數名都用Pascal形式:所 有單詞的第一個字母都大寫;
v : 若是不得已須要全局變量,則使全局變量加前綴g_(表示global)。
示例代碼:
class Node; // 類名 class LeafNode; // 類名 void Draw(void); // 函數名 void SetValue(int value); // 函數名
BOOL flag; int drawMode;
const int MAX = 100; const int MAX_LENGTH = 100;
void Init(…) { static int s_initValue; // 靜態變量 … }
int g_howManyPeople; // 全局變量 int g_howMuchMoney; // 全局變量
參考文章:
以及中央研究院C++ 編碼規範的word文檔;