6. 空白

int i;main(){for(;i["]<i;++i){--i;}"];read('-'-'-',i+++"hell\
o, world!\n",'/'/'/'));}read(j,i,p){write(j/p+p,i---j,i/i);}
- 不光彩的事情,模糊C代碼大賽,1984年。作者要求匿名。

通常情況下,請使用縱向和橫向的空白。縮進(jìn)和空格應(yīng)該反映代碼的塊結(jié)構(gòu)。例如,在一個函數(shù)定義與下一個函數(shù)的注釋之間,至少應(yīng)該有兩行空白。

如果一個條件分支語句過長,那就應(yīng)該將它拆分成若干單獨(dú)的行。

if (foo->next==NULL && totalcount<needed && needed<=MAX_ALLOT
    && server_active(current_input)) { ...

也許下面這樣更好

if (foo->next == NULL
    && totalcount < needed && needed <= MAX_ALLOT
    && server_active(current_input))
{
    ...

類似地,復(fù)雜的循環(huán)條件也應(yīng)該被拆分為不同行。

for (curr = *listp, trail = listp;
    curr != NULL;
    trail = &(curr->next), curr = curr->next )
{
    ...

其他復(fù)雜的表達(dá)式,尤其是那些使用了?:操作符的表達(dá)式,最好也能拆分成多行。

c = (a == b)
    ? d + f(a)
    : f(b) - d;

當(dāng)關(guān)鍵字后面有放在括號內(nèi)的表達(dá)式時,應(yīng)該使用空格將關(guān)鍵字與左括號分隔(sizeof操作符是個例外)。在參數(shù)列表中,我們也應(yīng)該使用空格顯式 的將各個參數(shù)隔開。然而,帶有參數(shù)的宏定義一定不能在名字與左括號間插入空格,否則C預(yù)編譯器將無法識別后面的參數(shù)列表。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容