代碼就是程序員的面子,不管是在工做中在電腦上寫程序代碼仍是在面試時在紙上寫演示代碼咱們都但願寫出整潔,優雅的代碼。特別在工做中當咱們碰到須要維護別人的代碼,或者是多人蔘與一個項目你們一塊兒寫代碼的時候,若是碰到一些醜陋的代碼,咱們還要看懂而且修改它的時候,那種難受,確定會讓咱們回想起多年之前本身仍是新手程序員的時候,寫下的那些醜陋的代碼,而且深深內疚於將它們留給了咱們的後繼者,不知道他們和它們是否還安好。因此,強調代碼的規範性,寫出整潔,優雅,可讀性高的代碼應該是成爲一個合格的程序員的第一步。這裏我就拋磚引玉,給你們一些關於C++代碼規範性的一些建議。程序員
寫代碼的時候添加良好風格的空格和空行可使代碼看上去更整潔,佈局更清晰。面試
下面這段代碼就會顯得不優雅,看着有些彆扭。函數
//很差的風格 void func (int a,int b,int c,int d) { if(a>=0) { if(a>=b&&c>=d) { int * x = & a; ...//doSomeThing(); } } }
咱們但願將它改成這樣。佈局
//良好的風格 void func(int a, int b, int c, int d)//建議一,建議三 { if (a >= 0)//建議二,建議五 { if ((a>=b) && (c>=d))//建議四 { int *x = &a; //建議六 ...//doSomeThing(); } } }
還有這樣的for語句for (i = 0; i < 5; i ++)
,就屬於空格濫用了,應該改成for (i=0; i<5; i++)
。spa
當程序中沒有空行時是這樣的。指針
void func1() { while (condition) { ...//doSomeThing(); if (condition) { ...//doSomeThingRelated(); } else { ...//doSomeThingRelated(); } ...//doSomeThing(); } } void func2() { ...//doSomeThing(); }
而良好的空行不緊能使代碼看上去更整潔,代碼邏輯也會更清晰。代碼規範
//良好的風格 void func1() { while (condition) { ...//doSomeThing(); if (condition) { ...//doSomeThingRelated(); } else { ...//doSomeThingRelated(); } ...//doSomeThing(); } } void func2() { ...//doSomeThing(); }
//很差的風格 void func() { int veryVeryLongWidth, veryVeryLongHeight; if ((veryVeryLongWidth > veryVeryLongHeight) || (veryVeryLongWidth < veryVeryLongHeight))doSomeThing(); }
過長的代碼行不管是書寫仍是閱讀對人來講都不是一個美好的體驗,因此咱們建議以上代碼要這樣寫。code
//良好的風格 void func() { int veryVeryLongWidth; int veryVeryLongHeight; if ((veryVeryLongWidth > veryVeryLongHeight) || (veryVeryLongWidth < veryVeryLongHeight)) { doSomeThing(); } }
class Book; class ReadBook; void Draw(); void DrawImage();
int value; void SetValueMode(int valueMode);
const int MAX = 100; const int MAX_LENGTH = 100;
int g_maxValue; static int s_maxValue; void Object::SetValue(int maxValue) { m_maxValue = maxValue; }
在C++中註釋主要有兩種,程序塊的註釋常採用「 /*…*/」,行註釋通常採用「 //…」。註釋主要用在3個地方。一、版權申明,二、函數說明,三、重要或複雜代碼提示。對於前兩種,每一個人或者每一個公司都有我的的規範和習慣,這裏只要你們在公司內部統一便可。關於第三種給重要或複雜代碼添加提示,咱們有一下幾點建議。文檔
if (flag) // 表示 flag 爲真 if (!flag) // 表示 flag 爲假
if (value == 0) if (value != 0)
也能夠將0放在比較運算符前面。編譯器
if (0 == value) if (0 != value)
這時若是將「==」寫成「=」,編譯器會報錯。
if (x == 0.0) // 隱含錯誤的比較
修改成
const float EPSINON = 0.00001; if ((x>=-EPSINON) && (x<=EPSINON))
其中 EPSINON 是容許的偏差(即精度)。
if (p == NULL) // p 與 NULL 顯式比較,強調 p 是指針變量 if (p != NULL)
做者:吳尼瑪cs 連接:https://www.jianshu.com/p/ccc1b1992894 來源:簡書 簡書著做權歸做者全部,任何形式的轉載都請聯繫做者得到受權並註明出處。