5. 函數(shù)聲明

每個(gè)函數(shù)前面應(yīng)該放置一段塊注釋?zhuān)乓枋鲈摵瘮?shù)做什么以及(如果不是很清晰)如何使用該函數(shù)。重要的設(shè)計(jì)決策討論以及副作用說(shuō)明也適合放在注釋 中。避免提供那些代碼本身可以清晰提供的信息。

函數(shù)的返回類(lèi)型應(yīng)該單獨(dú)占據(jù)一行,(可選的)縮進(jìn)一個(gè)級(jí)別。不用使用默認(rèn)返回類(lèi)型int;如果函數(shù)沒(méi)有返回值,那么將返回類(lèi)型聲明為void。如 果返回值需要大段詳細(xì)的說(shuō)明,可以在函數(shù)之前的注釋中描述;否則可以在同一行中對(duì)返回類(lèi)型進(jìn)行注釋。函數(shù)名(以及形式參數(shù)列表)應(yīng)該被單獨(dú)放在一 行,從第一列開(kāi)始。目的(返回值)參數(shù)一般放在第一個(gè)參數(shù)位置(從左面開(kāi)始)。所有形式參數(shù)聲明、局部聲明以及函數(shù)體中的代碼都應(yīng)該縮進(jìn)一級(jí)。函 數(shù)體的開(kāi)始括號(hào)應(yīng)該單獨(dú)一行,放在開(kāi)始處的第一列。

每個(gè)參數(shù)都應(yīng)該被聲明(不要使用默認(rèn)類(lèi)型int)。通常函數(shù)中每個(gè)變量的角色都應(yīng)該被描述清楚,我們可以在函數(shù)注釋中描述,或如果每個(gè)聲明單獨(dú)一 行,我們可以將注釋放在同一行上。像循環(huán)計(jì)數(shù)器"i",字符串指針"s"以及用于標(biāo)識(shí)字符的整數(shù)類(lèi)型"c"這些簡(jiǎn)單變量都無(wú)需注釋。如果一組函數(shù) 都擁有一個(gè)相似的參數(shù)或局部變量,那么在所有函數(shù)中使用同一個(gè)名字來(lái)標(biāo)識(shí)這個(gè)變量是很有益處的(相反,避免在相關(guān)函數(shù)中使用一個(gè)名字標(biāo)識(shí)用途不同 的變量)。不同函數(shù)中的相似參數(shù)還應(yīng)該放在各個(gè)參數(shù)列表中的相同位置。

參數(shù)和局部變量的注釋?xiě)?yīng)該統(tǒng)一縮進(jìn)以排成一列。局部變量聲明應(yīng)用一個(gè)空行與函數(shù)語(yǔ)句分隔開(kāi)來(lái)。

當(dāng)你使用或聲明變長(zhǎng)參數(shù)的函數(shù)時(shí)要小心。目前在C中尚沒(méi)有真正可移植的方式處理變長(zhǎng)參數(shù)。最好設(shè)計(jì)一個(gè)使用固定個(gè)數(shù)參數(shù)的接口。如果一定要使用變 長(zhǎng)參數(shù),請(qǐng)使用標(biāo)準(zhǔn)庫(kù)中的宏來(lái)聲明具有變長(zhǎng)參數(shù)的函數(shù)。

如果函數(shù)使用了在文件中沒(méi)有進(jìn)行全局聲明的外部變量(或函數(shù)),我們應(yīng)該在函數(shù)體內(nèi)部使用extern關(guān)鍵字單獨(dú)對(duì)這些變量進(jìn)行聲明。

避免局部聲明覆蓋高級(jí)別的聲明。尤其是,局部變量不應(yīng)該在嵌套代碼塊中被重聲明。雖然這在C中是合法的,但是當(dāng)使用-h選項(xiàng)時(shí),潛在的沖突可能性 足以讓lint工具發(fā)出抱怨之聲。

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

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

  • 前言 人生苦多,快來(lái) Kotlin ,快速學(xué)習(xí)Kotlin! 什么是Kotlin? Kotlin 是種靜態(tài)類(lèi)型編程...
    任半生囂狂閱讀 26,725評(píng)論 9 118
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,688評(píng)論 19 139
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 4,202評(píng)論 1 10
  • 這兩天《北京,2000萬(wàn)人在假裝生活》文章刷屏了,原文還沒(méi)來(lái)得及看,已經(jīng)就被屏蔽了,可惜了。 不去說(shuō)原文內(nèi)容是什么...
    新匠者閱讀 309評(píng)論 0 1
  • 我一直信奉一句話:再卑微的一個(gè)人,也有做夢(mèng)的權(quán)利。 我們之所以這么努力,是因?yàn)樾闹杏袀€(gè)不想放棄的東西。還記得你兒時(shí)...
    木錦萱閱讀 295評(píng)論 0 3

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