代码格式驼峰命名法
引言
每個人寫代碼都有著自己的風格,但是這樣一旦幾個人一起寫項目的時候就會出現各種各樣的問題,所以統一格式的代碼會看起來更舒服更規范,也能直觀的體現出你的編碼水平,下面我就以C++為例,講一下基本的代碼格式和駝峰命名法則
這里代碼格式是摘自Google部分內容和總結的內容,適用于學生日常的練習,平常練習培養好習慣,對以后工作會大有幫助;
一些歸類
這里說一點是大括號和控制語句保持同一行的,這樣可以縮短代碼的行數,特別是項目中代碼行數很多的情況下,這種寫法是可以提高閱讀代碼的效率。
例如
while (n) { } if (n) { } else { }代碼頭文件是頂頭寫的,即前面沒有空格
#include<iostream> #include<vector>在類中參數權限是在類聲明的下一行,且前面有一個空格
換行后的參數保持 4 個空格的縮進.(這個也適用于函數和條件、循環語句)
水平留白
通用
void f(bool b) { // 左大括號前總是有空格.int i = 0; // 分號前不加空格. // 列表初始化中大括號內的空格是可選的. // 如果加了空格, 那么兩邊都要加上. int x[] = { 0 }; int x[] = {0};// 繼承與初始化列表中的冒號前后恒有空格. class Foo : public Bar {public:// 對于單行函數的實現, 在大括號內加上空格// 然后是函數實現Foo(int b) : Bar(), baz_(b) {} // 大括號里面是空的話, 不加空格.void Reset() { baz_ = 0; } // 用括號把大括號與實現分開.添加冗余的留白會給其他人編輯時造成額外負擔. 因此, 行尾不要留空格. 如果確定一行代碼已經修改完畢, 將多余的空格去掉; 或者在專門清理空格時去掉(尤其是在沒有其他人在處理這件事的時候).
循環和條件語句
if (b) { // if 條件語句和循環語句關鍵字后均有空格. } else { // else 前后有空格. } while (test) {} // 圓括號內部不緊鄰空格. switch (i) { for (int i = 0; i < 5; ++i) { switch ( i ) { // 循環和條件語句的圓括號里可以與空格緊鄰. if ( test ) { // 圓括號, 但這很少見. 總之要一致. for ( int i = 0; i < 5; ++i ) { for ( ; i < 5 ; ++i) { // 循環里內 ; 后恒有空格, ; 前可以加個空格. switch (i) {case 1: // switch case 的冒號前無空格....case 2: break; // 如果冒號有代碼, 加個空格.操作符
// 賦值運算符前后總是有空格. x = 0;// 其它二元操作符也前后恒有空格, 不過對于表達式的子式可以不加空格. // 圓括號內部沒有緊鄰空格. v = w * x + y / z; v = w*x + y/z; v = w * (x + z);// 在參數和一元操作符之間不加空格. x = -5; ++x; if (x && !y)...模板和轉換
// 尖括號(< and >) 不與空格緊鄰, < 前沒有空格, > 和 ( 之間也沒有. vector<string> x; y = static_cast<char*>(x);// 在類型與指針操作符之間留空格也可以, 但要保持一致. vector<char *> x;垂直留白
總述
垂直留白越少越好.
駝峰命名法
這個是對變量命名常用方法之一,恰當命名的變量更有利于對代碼的理解;
小駝峰法
第一個單詞首字母小寫,后面其他單詞首字母大寫。
大駝峰法
大駝峰法把第一個單詞的首字母也大寫;
大駝峰法通常用于類名、函數名、屬性名;
總結
這里的風格只是一種,但是Google的代碼風格還是使用非常廣泛的,學生時期日常練習時就可以下意識使用這種風格,這對自己代碼的規范性有很大好處,以后工作時還是要根據公司實際情況使用;
這里只是一部分,但是已經足夠基本刷個題使用了。如果有遺漏,以后會補充;
總結
- 上一篇: 最长递增子序列 最长连续递增序列
- 下一篇: 最长重复子数组最长公共子序列不相交的线