編程入門之編碼風格

  做爲編程的工做人員,代碼風格也是很是重要的。編譯器通常不會挑起難看的代碼,可以順利編譯的代碼不必定是好代碼,好的代碼必定可以順利編譯,怎麼才能寫出好代碼。好的代碼是須要好的風格的。本人主要是在linux下編程,因此編程風格主要是使用linux內和風格。linux

1、標識符,變量名、函數名、常量、結構類型名、枚舉類型名、聯合類型名、自定義類型名等編程

  一、禁止使用函數拼音做標識符,更不容易理解;數組

  二、標識符只能有字母(大小寫),下劃線(_)和數字構成,不能以數字開頭表示的組合,表示特定含義的符號便可;標識需有明確的含義;函數

  三、標識符能夠用完整的單詞或易於理解的縮寫,短單詞去掉元音造成縮寫,長單詞取頭幾個字母便可,須要積累便可;unix

  四、標識符宏定義或常量經常使用全大寫標識,其餘,基本都是用小寫;指針

  五、標識符能夠採用駝峯式命名,除了首單詞首字母小寫,其餘單詞首字母是大寫;能夠用_分割單詞,建議不用;字符串

  六、全局變量或全局函數的命名能夠多用幾個單詞明確標識符的功能;編譯器

  七、儘可能不要使用單字母的變量名稱,除了for循環中i、j和k以外的任何變量;源碼

 

2、空白for循環

  一、空白包括空行、空格和Tab等,代碼中加上適當的空白,下降代碼的密度,令代碼顯示更加美觀

  空行:代碼中的邏輯段路之間每每使用空行分開,例如:函數與函數實現之間,定義語句與執行語句之間與返回語句之間都應使用空行分開

  空格:主要用來區別不一樣內容(關鍵字,符號、運算符、標點等)。

  一、if、while、else和for等後的左小括號與關鍵字之間插入一個空格,控制表達式與左右小括號之間不加空格,如:while (1);

  二、雙目運算符(=,+,>)等兩側各插入一個空格,單目運算符(++、-、&、!)等與操做數之間不能加空格;

  三、後綴運算符(.)、函數調用foo(arg1)、取數組成員a[i]都不須要加空格;

  四、標點符號(, ;)後家上空格;

  五、unix標準終端字符是24行80列,大於80個字符的長語句儘可能折行寫,折行後的語句要儘可能和先前語句左對其,使用tab調整;

  六、較長的字符串也能夠斷開成多個字符串分行書寫,多行一樣需對其便可;

  七、變量定義時最好一行指定義一個變量;

  八、頭文件引入、變量定義、執行語句、返回語句之間都應該插入空行;

 

3、縮進,經常使用來體現代碼中語句的層次邏輯關係,使用tab字符縮進,儘可能不用空格表示tab,禁止空格縮進和tab縮進混用

  一、跳轉和循環語句中在帶語句塊是,語句塊的{應與語句在同一行,中間用空格分隔便可;減小代碼行數 

  二、普通函數定義時{應與函數聲明在同一行;減小代碼行數

  三、每一層語句塊的嵌套都要實現代碼的往裏縮進一層;

  四、goto語句的自定義標號不要縮進,不管標號下的語句的縮進層級如何;

  

 

4、註釋,經常使用對代碼做特別說明,

  一、註釋主要包括單行註釋(以//開始到行尾結束)和多行註釋(包括在/*和*/之間的內容);

  二、整個源碼文件的頂部註釋,模塊的信息(文件名、做者信息、版權信息、版本(歷史)信息)等,註釋頂頭寫,不縮進;

  三、函數註釋,函數的功能,參數、返回信息、錯誤碼等,寫在函數定義上側,與函數定義建不留空行,註釋頂頭寫,不縮進;

  四、語句塊註釋,說明語句塊功能,寫在語句塊上側,與語句塊不留空行,與當前語句塊縮進層一致;

  五、複雜結構體註釋,說明變量的含義表示等,寫在結構體內外都可,與最近的語句縮進層一致;

  六、複雜的宏定義註釋,說明紅頂的含義等,頂格寫,與宏定義不留空行,無縮進;

  七、複雜的變量聲明註釋,變量的做用說明,寫在變量聲明的上側,與語句不留空行,縮進保持一致;

  八、特殊行代碼註釋,又叫代碼行右側註釋,一種短註釋,對當前行代碼做特別說明。通常爲單行註釋,和代碼間最少需隔一個空格,同一源文件中的右側註釋必須對其,通常從61字符開始;

  九、穿插在代碼行中的註釋,建議不要使用;

 

5、編程的基本要求:

  一、必定要實現一個函數只作一件事情,並能力作好,不要實現面面俱到的函數;

  二、建議代碼行數不要過多,不超過2屏,24×2=48行;

  三、同一函數內部縮進層級儘可能不要超過5層或更多層;

  四、函數的實現思路應該是邏輯簡單,實現方便;

  五、執行函數調用就是經過函數調用完成函數執行的動做集合,所以函數名常常包含動詞,經常是動名機構的短語;

  六、重要的函數每每須要加上適當的註釋

  七、同一個函數中的局部變量不要超過10個,傳遞的參數不大於6個,下降函數的複雜度;

  八、在超過3個不一樣的地方重複實現的代碼,儘可能抽象成函數來實現功能;

  九、原則上註釋部分不低於代碼量的30%;

  十、複雜類型的定義,結構體、聯合體、枚舉、函數指針、複合類型的數據儘可能用typedef定義新類型的方法定義使用;

相關文章
相關標籤/搜索