1. 程式人生 > >C之函數設計原則(四十二)

C之函數設計原則(四十二)

C語言 設計原則

我們今天來講下函數的設計原則。函數從意義上應該是一個獨立的功能模塊,函數名要在一定程度上反映函數的功能;函數參數名要能夠體現參數的意義,盡量避免在函數中使用全局變量。

A、當函數參數不應該在函數體內部被修改時,應加上 const 聲明;如果參數是指針,且僅作輸入參數,則一個加上 const 聲明。例: void str_copy(char *str_dest, const char *str_src);

B、不能省略返回值的類型,如果函數沒有返回值,則應聲明其為 void 類型;對參數進行有效性檢查,對於指針參數的檢查尤為重要;不要返回指向“棧內存”的指針

,棧內存在函數體結束時被自動釋放。

C、函數體的規模要小,盡量控制在 80 行代碼之內相同的輸入對應相同的輸出,避免函數帶有“記憶”功能;避免函數有過多的參數,參數個數盡量控制在 4 個以內。

D、有時候函數不需要返回值,但為了增加靈活性,如支持鏈式表達,可以附加返回值。

char s[64]; int len = strlen(strcpy(s, "android"));

E、函數名與返回值類型在語義上不可沖突

C之函數設計原則(四十二)