再談引數列表

2021-04-13 22:57:44 字數 535 閱讀 8913

我記得上次寫了一篇文章,說用引數傳遞的方式來縮小類中的成員變數的作用範圍。實踐證明,這種做法是正確的,只是有的時候,過長的引數列表讓**看起來不舒服(不是有編碼規範嗎,規定引數列表中的引數不能超過5個)。但是對於降低**的bug產出率來說,這點不舒服是必須忍受的,**有什麼便宜都佔盡的道理呀(又囉嗦了:))。

今天我想說的是,傳遞引數引用的話題。這個話題源於我今天遇到的乙個bug。乙個物件的processid不知在什麼地方被重置了。processid是乙個物件的屬性,這個屬性是可讀寫的。而在那些要使用processid的函式中,它們的引數列表傳遞的都是那個物件。這樣的函式有很多,所以要找到那個重置了processid的位置,就變得有點像大海撈針了。

如何避免這個問題呢,後來我想了一下,可能還要從引數列表中下手,引數列表最好是傳遞簡單的資料或是結構,而不是物件引用,或者是在傳遞物件引用之前,將這個物件複製乙份,將備份的物件引用傳進去。這樣就可以很大程度上避免這個問題。當然這會帶來一些效能上的損失,但是要少出bug,可能也只有這樣了。

我不知道我的這個想法是否合理,還望各位高手,特別是構架師們多多指教。

Bash引數列表

command meaning represent all arguments the number of arguments 0the script name 1the first argument name the ten argument name basename get the file ...

可變引數列表

模擬實現printf函式 va list是在c語言中解決變參問題的一組巨集,所在標頭檔案 include 用於獲取不確定個數的引數 va start,函式名稱,讀取可變引數的過程其實就是在堆疊中,使用指標,遍歷堆疊段中的引數列表,從低位址到高位址乙個乙個地把引數內容讀出來的過程 va arg,這個巨...

可變引數列表

小二,上 class a public class varargs two param static void twostringparam string a,string b three param 參照上兩種寫法,一直往後面加。是不是感覺很憂傷 幸好這不是真的。string.a static v...