每個函數(shù)前面應該放置一段塊注釋弊决,概要描述該函數(shù)做什么以及(如果不是很清晰)如何使用該函數(shù)窑邦。重要的設計決策討論以及副作用說明也適合放在注釋 中擅威。避免提供那些代碼本身可以清晰提供的信息。
函數(shù)的返回類型應該單獨占據(jù)一行冈钦,(可選的)縮進一個級別郊丛。不用使用默認返回類型int;如果函數(shù)沒有返回值瞧筛,那么將返回類型聲明為void厉熟。如 果返回值需要大段詳細的說明,可以在函數(shù)之前的注釋中描述较幌;否則可以在同一行中對返回類型進行注釋揍瑟。函數(shù)名(以及形式參數(shù)列表)應該被單獨放在一 行,從第一列開始乍炉。目的(返回值)參數(shù)一般放在第一個參數(shù)位置(從左面開始)绢片。所有形式參數(shù)聲明滤馍、局部聲明以及函數(shù)體中的代碼都應該縮進一級。函 數(shù)體的開始括號應該單獨一行底循,放在開始處的第一列巢株。
每個參數(shù)都應該被聲明(不要使用默認類型int)。通常函數(shù)中每個變量的角色都應該被描述清楚熙涤,我們可以在函數(shù)注釋中描述阁苞,或如果每個聲明單獨一 行,我們可以將注釋放在同一行上祠挫。像循環(huán)計數(shù)器"i"那槽,字符串指針"s"以及用于標識字符的整數(shù)類型"c"這些簡單變量都無需注釋。如果一組函數(shù) 都擁有一個相似的參數(shù)或局部變量茸歧,那么在所有函數(shù)中使用同一個名字來標識這個變量是很有益處的(相反倦炒,避免在相關函數(shù)中使用一個名字標識用途不同 的變量)。不同函數(shù)中的相似參數(shù)還應該放在各個參數(shù)列表中的相同位置软瞎。
參數(shù)和局部變量的注釋應該統(tǒng)一縮進以排成一列逢唤。局部變量聲明應用一個空行與函數(shù)語句分隔開來。
當你使用或聲明變長參數(shù)的函數(shù)時要小心涤浇。目前在C中尚沒有真正可移植的方式處理變長參數(shù)鳖藕。最好設計一個使用固定個數(shù)參數(shù)的接口。如果一定要使用變 長參數(shù)只锭,請使用標準庫中的宏來聲明具有變長參數(shù)的函數(shù)著恩。
如果函數(shù)使用了在文件中沒有進行全局聲明的外部變量(或函數(shù)),我們應該在函數(shù)體內部使用extern關鍵字單獨對這些變量進行聲明蜻展。
避免局部聲明覆蓋高級別的聲明喉誊。尤其是,局部變量不應該在嵌套代碼塊中被重聲明纵顾。雖然這在C中是合法的伍茄,但是當使用-h選項時,潛在的沖突可能性 足以讓lint工具發(fā)出抱怨之聲施逾。