鄭州市建設(shè)廳網(wǎng)站網(wǎng)絡(luò)營銷的現(xiàn)狀
【規(guī)則1-1】參數(shù)的書寫要完整,不要貪圖省事只寫參數(shù)的類型而省略參數(shù)名字。 如果函數(shù)沒有參數(shù),則用 void 填充。 例如:
void SetValue(int width, int height); // 良好的風(fēng)格
void SetValue(int, int); // 不良的風(fēng)格
float GetValue(void); // 良好的風(fēng)格
float GetValue(); // 不良的風(fēng)格
【規(guī)則1-2】參數(shù)命名要恰當(dāng),順序要合理。
例如編寫字符串拷貝函數(shù) StringCopy
,它有兩個參數(shù)。如果把參數(shù)名字起為 str1
和str2
,例如
void StringCopy(char *str1, char *str2);
那么我們很難搞清楚究竟是把 str1
拷貝到 str2
中,還是剛好倒過來。 可以把參數(shù)名字起得更有意義,如叫 strSource
和 strDestination
。這樣從名字上就可以看出應(yīng)該把 strSource
拷貝到 strDestination
。
還有一個問題,這兩個參數(shù)那一個該在前那一個該在后?參數(shù)的順序要遵循程序員的習(xí)慣。一般地,應(yīng)將目的參數(shù)放在前面,源參數(shù)放在后面。 如果將函數(shù)聲明為:
void StringCopy(char *strSource, char *strDestination);
別人在使用時可能會不假思索地寫成如下形式:
char str[20];
StringCopy(str, “Hello World”); // 參數(shù)順序顛倒
【規(guī)則1-3】如果參數(shù)是指針,且僅作輸入用,則應(yīng)在類型前加 const,以防止該 指針在函數(shù)體內(nèi)被意外修改。 例如:
void StringCopy(char *strDestination,const char *strSource);
【規(guī)則1-4】如果輸入?yún)?shù)以值傳遞的方式傳遞對象,則宜改用“const &”方式 來傳遞,這樣可以省去臨時對象的構(gòu)造和析構(gòu)過程,從而提高效率。
【建議1-1】避免函數(shù)有太多的參數(shù),參數(shù)個數(shù)盡量控制在 5 個以內(nèi)。如果參數(shù)太多,在使用時容易將參數(shù)類型或順序搞錯。
【建議1-2】盡量不要使用類型和數(shù)目不確定的參數(shù)。
C 標(biāo)準(zhǔn)庫函數(shù) printf 是采用不確定參數(shù)的典型代表,其原型為:
int printf(const chat *format[, argument]?);
這種風(fēng)格的函數(shù)在編譯時喪失了嚴(yán)格的類型安全檢查。