C++基礎 學習筆記一:源代碼的格式化 1. 源代碼中的標記與空白 C++中的語句是以分號表示語句的結束。在C++中空格和回車以及製表符均為相同作用,即三者通常可以互相替代。 例如可以將一個簡單的main函數這樣寫: cpp int main(){cout(僅供參考) 上面的兩個例子均可通過編譯但是 ...
C++基礎 學習筆記一:源代碼的格式化
1. 源代碼中的標記與空白
C++中的語句是以分號表示語句的結束。在C++中空格和回車以及製表符均為相同作用,即三者通常可以互相替代。
例如可以將一個簡單的main函數這樣寫:
int main(){cout<<endl;return 0;}
也可以這樣寫:
int main
() {cout
<<
endl;return
0;}
都可以通過編譯。
空白
空格和回車以及製表符統稱為空白。
標記
代碼中不可分割的元素叫做標記,標記與標記之間需要用空白分開(括弧,分號,逗號等符號可以不用分開)。
2. 源代碼格式化(僅供參考)
上面的兩個例子均可通過編譯但是可讀性不強,為了便於閱讀需要遵循合理的風格,命名規則。
風格規範
- 每條語句儘量占一行,對於過於長的語句可以將語句用換行符切割成易讀的較短的代碼行。
- 每個函數都將花括弧獨占一行
- 函數的語句都要對函數體進行層級相對縮進。
- 函數的括弧和函數名在同一行,參數過長要保持左括弧與函數名再同一行。
- 空迴圈體可以用
continue;
代替。 - 合理運用行註釋和塊註釋
命名規則
- 類名首字母大寫,名稱為名詞
- 方法(函數)名建議用動詞命名首字母小寫
- 變數名全部用小寫
- 整個項目都遵循一種命名規則
命名規則推薦
沒有一種命名規則是所有人都贊同的,但是有一些著名的命名規則現羅列在此。
匈牙利命名法
匈牙利命名法是由Microsoft程式員查爾斯·西蒙尼(Charles Simonyi) 提出的。其主要思想是“在變數和函數名中加入 首碼以增進人們對程式的理解。
匈牙利命名法關鍵:
標識符的名字以一個或者多個小寫字母開頭作為首碼;首碼之後的是首字母大寫的一個單詞或多個單片語合, 該單詞要指明變數的用途,但這種命名法對於跨平臺移植簡直是災難 。
形式如下:
全局變數名=範圍首碼+下劃線+類型首碼+數組首碼+自定義命名
局部變數名=類型首碼+數組首碼+自定義命名
函數命名=類型首碼+自定義命名
控制項命名=控制項首碼+自定義命名
控制項事件命名=控制項名稱+下劃線+事件名稱
程式文件命名=模塊名縮寫+自定義命名
特點:
含義明確,便於程式維護、提高工作效率,但是繁瑣。
基本原則
變數名=屬性+類型+對象描述。
屬性:
全局變數 g_ 常量 c_ 類成員變數 m_ 靜態變數 s_ 類型部分
指針 p 函數 fn 句柄 h 長整型 l 布爾 b 浮點型(有時也指文件) f 雙字 w 字元串 sz 短整型 n 雙精度浮點 d 計數 c(通常用cnt) 字元 ch(通常用c) 整形 i(通常用n) 位元組 by 字 w 實型 r 無符號 u 描述部分
最大 Max 最小 Min 初始化 Init 臨時變數 T(或Temp) 源對象 Src 目的對象 Dest 舉例:
hwnd :
h 是類型描述,表示句柄, wnd 是變數對象描述,表示視窗,所以 hwnd 表示視窗句柄;
pfnEatApple :
pfn 是類型描述,表示指向函數的指針, EatApple 是變數對象描述,所以它表示指向 EatApple 函數的函 數指針變數。
g_cch :
g_ 是屬性描述,表示全局變數,c 和 ch 分別是計數類型和字元類型,一起表示變數類型,這裡忽略了對 象描述,所以它表示一個對字元進行計數的全局變數。
駱駝(Camel)命名法
駱駝式命名法(Camel-Case)一詞來自 Perl 語言中普遍使用的大小寫混合格式,而 Larry Wall 等人所著的暢銷書 《Programming Perl》的封面圖片正是一匹駱駝。 駱駝式命名法的命名規則可視為一種慣例,並無絕對與強制,為 的是增加識別和可讀性。
駝峰法(小駝峰法)
變數一般用小駝峰法標識。駝峰法的意思是除第一個單詞之外,其他單詞首字母大寫。常用於函數名。
Pascal法(大駝峰法)
相比小駝峰法,大駝峰法把第一個單詞的首字母也大寫了。常用於類名,屬性,命名空間等
下劃線命名法
下劃線法是隨著C語言的出現流行起來的,在UNIX/LIUNX這樣的環境,以及GNU代碼中使用非常普遍,用小寫字 母和下劃線來構成變數或函數名,每個邏輯斷點處用下劃線來標記。