您好,登錄后才能下訂單哦!
我們今天來講下函數(shù)的設(shè)計(jì)原則。函數(shù)從意義上應(yīng)該是一個(gè)獨(dú)立的功能模塊,函數(shù)名要在一定程度上反映函數(shù)的功能;函數(shù)參數(shù)名要能夠體現(xiàn)參數(shù)的意義,盡量避免在函數(shù)中使用全局變量。
A、當(dāng)函數(shù)參數(shù)不應(yīng)該在函數(shù)體內(nèi)部被修改時(shí),應(yīng)加上 const 聲明;如果參數(shù)是指針,且僅作輸入?yún)?shù),則一個(gè)加上 const 聲明。例: void str_copy(char *str_dest, const char *str_src);
B、不能省略返回值的類型,如果函數(shù)沒有返回值,則應(yīng)聲明其為 void 類型;對(duì)參數(shù)進(jìn)行有效性檢查,對(duì)于指針參數(shù)的檢查尤為重要;不要返回指向“棧內(nèi)存”的指針,棧內(nèi)存在函數(shù)體結(jié)束時(shí)被自動(dòng)釋放。
C、函數(shù)體的規(guī)模要小,盡量控制在 80 行代碼之內(nèi)相同的輸入對(duì)應(yīng)相同的輸出,避免函數(shù)帶有“記憶”功能;避免函數(shù)有過多的參數(shù),參數(shù)個(gè)數(shù)盡量控制在 4 個(gè)以內(nèi)。
D、有時(shí)候函數(shù)不需要返回值,但為了增加靈活性,如支持鏈?zhǔn)奖磉_(dá),可以附加返回值。
char s[64]; int len = strlen(strcpy(s, "android"));
E、函數(shù)名與返回值類型在語義上不可沖突。
歡迎大家一起來學(xué)習(xí) C 語言,可以加我QQ:243343083。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。