函式設計的一般原則和技巧

2021-09-26 04:38:53 字數 1129 閱讀 3569

1.原則上盡量少使用全域性變數,因為全域性變數的生命週期太長,容易出錯, 也會長時間占用空間.各個原始檔負責本身檔案的全域性變數,同時提供一對對外函式,方 便其它函式使用該函式來訪問變數。比如:niset_valuename(⋯);niget_valuename(⋯); 不要直接讀寫全域性變數,尤其是在多執行緒程式設計時,必須使用這種方式,並且對讀寫操作 加鎖。

2.引數命名要恰當,順序要合理。

3.如果引數是指標,且僅作輸入引數用,則應在型別前加const,以防止該 指標在函式體內被意外修改。

4.不要省略返回值的型別,如果函式沒有返回值,那麼應宣告為void 型別。 如果沒有返回值,編譯器則預設為函式的返回值是int型別的。

5.在函式體的「入口處」,對引數的有效性進行檢查。尤其是指標引數,盡 量使用assert巨集做入口校驗,而不使用if語句校驗。(關於此問題討論,詳見指標與陣列那章。)

6.return 語句不可返回指向「棧記憶體」的「指標」,因為該內存在函式體結 束時被自動銷毀

7.函式的功能要單一,不要設計多用途的函式。

8.函式體的規模要小

建議1:相同的輸入應當產生相同的輸出。盡量避免函式帶有「記憶」功能。 帶有「記憶」功能的函式,其行為可能是不可**的,因為它的行為可能取決於某種 「記憶狀態「。這樣的函式既不易理解又不利於測試和維護。在c 語言中,函式的static 區域性變數是函式的「記憶」儲存器。建議盡量少用static 區域性變數,除非必需。

建議2:避免函式有太多的引數,引數個數盡量控制在4個或4個以內。如果引數太 多,在使用時容易將引數型別或順序搞錯

建議3:盡量不要使用型別和數目不確定的引數。

建議4:有時候函式不需要返回值,但為了增加靈活性如支援鏈式表達,可以附加 返回值。例如字串拷貝函式strcpy 的原型:

char *strcpy(char *strdest,const char *strsrc);

strcpy 函式將strsrc 拷貝至輸出引數strdest 中,同時函式的返回值又是strdest。這樣做 並非多此一舉,可以獲得如下靈活性:

char str[20]; int length = strlen(strcpy(str, 「hello world」) );

建議5:不僅要檢查輸入引數的有效性,還要檢查通過其它途徑進入函式體內的變 量的有效性,例如全域性變數、檔案控制代碼等。

PCB設計的一般原則

pcb 設計的一般原則 印製電路板 pcb 是電子產品中電路元件和器件的支撐件 它提供電路元件和器件之間的電氣連線。隨著電於技術的飛速發展,pcb的密度越來越高。pcb設計的好壞對抗干擾能力影響很大 因此,在進行 pcb設計時 必須遵守 pcb設計的一般原則,並應符合抗干擾設計的要求。要使電子電路獲...

PCB設計的一般原則

印製電路板 pcb 是電子產品中電路元件和器件的支撐件 它提供電路元件和器件之間的電氣連線。隨著電於技術的飛速發展,pcb的密度越來越高。pcb設計的好壞對抗干擾能力影響很大 因此,在進行pcb設計時 必須遵守pcb設計的一般原則,並應符合抗干擾設計的要求。要使電子電路獲得最佳效能,元器件的布局及導...

PCB設計的一般原則 分享

pcb設計的一般原則 分享 印製電路板 pcb 是電子產品中電路元件和器件的支撐件 它提供電路元件和器件之 間的電氣連線。隨著電於技術的飛速發展,pcb的密度越來越高。pcb設計的好壞對抗干擾能力影響很大 因此,在進行 pcb設計時 必須遵守 pcb設計的一般原則,並應符合抗干擾設計的要求。要使電子...