官术网_书友最值得收藏!

1.4.2 空格、大括號位置及縮進

適當添加空格、不濫用空格,對提高代碼的可讀性和維護代碼的整潔性具有很大的幫助。這方面的最佳實踐便是采納Linux內核編碼風格的相關規定。

(1)單目運算符和++--運算符的前后不加空格,例如像下面這樣的寫法是正確的:

int *p = (int *)&a;
p++;
--a;

像下面這樣的寫法是不正確的:

a ++;
++ p;

(2)函數名稱,包括可按函數方式調用的關鍵字(如sizeof)和宏的后面,不要加空格,例如像下面這樣的寫法是正確的:

call_me(sizeof(int), MAX(x, y));

其中,參數列表中的逗號之后應該添加空格。

像下面這樣的寫法是不正確的:

call_me (sizeof (int),MAX (x,y));

(3)不要在行尾添加空格。這一點很重要,但很容易被忽視,因為行尾的空格在視覺上是看不出來的。為此,可以修改編輯器的設置,顯示行尾的空白字符,比如將行尾的空格顯示為灰色的句點。

(4)雙目運算符或多目運算符的前后,以及關鍵字(如ifelsefor)的后面一般需要添加空格,例如:

if (a && b) {
}

但也有一些例外,比如雙目的成員訪問操作符(.->)的前后不需要添加空格,例如:

temp->next = NULL;

除空格之外,有關大括號的位置,還有一個建議是遵循Linux內核編碼風格的相關規定。相較于其他編碼風格,Linux內核編碼風格的相關規定最為簡潔。但究竟是使用制表符還是使用空格進行縮進,以及縮進寬度是4個空格還是8個空格,則由讀者自行決定。在實踐中,相較于將if、while等語句后的左大括號({)單獨一行書寫,筆者更喜歡將其置于行尾,如下所示:

int lots_of_args(int x, long y, short z, double a_double, float a_float)
{
    int haha = 0;
 
    if (x < foo(y, z)) {
        haha = bar[4] + 5;
    }
    else {      /* 筆者不太喜歡 } else { 這種寫法 */
        while (z) {
            haha += foo(z, z);
            z--;
        }
 
        haha = ++x + bar();
    }
 
    return haha;
}
主站蜘蛛池模板: 六枝特区| 岚皋县| 时尚| 淮滨县| 岚皋县| 舒兰市| 宁南县| 巩留县| 黎川县| 巴楚县| 温州市| 临高县| 大埔区| 和田市| 东丰县| 珲春市| 彭泽县| 静安区| 井冈山市| 靖远县| 军事| 松桃| 银川市| 论坛| 弥勒县| 贵港市| 广东省| 衡山县| 永城市| 满城县| 延安市| 长丰县| 旬阳县| 磐安县| 临汾市| 嘉荫县| 巫溪县| 红桥区| 巨野县| 张掖市| 阿瓦提县|