函式引數傳遞規則 一

2021-06-19 07:26:27 字數 926 閱讀 1444

1、函式引數傳遞規則

函式介面的兩個要素是引數和返回值,c中傳遞方式:值傳遞和位址傳遞(即指標傳遞);c++中:值傳遞,位址傳遞和引用傳遞。

規則一:不論是函式的原型還是定義,都要明確寫出每個引數的型別和名字,如果函式沒有引數,那麼使用void而不要空著。因為標準c把空的引數列表解釋為可以接受任何型別和個數的引數,而標準c++則把空的引數列表解釋為不可以接受任何引數。在移植c/c++程式時尤其要注意這方面的不同。

規則二:引數命名要恰當。輸入引數與輸出引數的順序要合理,引數的順序遵循程式設計師的習慣。一般,輸出放在前面,輸入引數放在後面,並且不要交叉出現輸入輸出引數。

規則三:如果引數是指標,且僅做輸入用,則應在型別前加const,以防止該指標指向的記憶體單元在函式體內無意中被修改。

2、返回值規則

規則一:不要省略返回值型別,如果沒有返回值,則應宣告為void型別。

規則二:函式名字與返回值型別在語義上不可衝突。例外:getchar();返回型別是int,而不是char。

3、函式內部實現規則

1).在函式體的「入口處」,對引數的有效性進行檢查。斷言assert。

2).在函式體的「出口處」,對return語句的正確性和效率進行檢查。如果函式有返回值,那麼函式的「出口處」是return語句。

注意: 1.return語句不可返回指向堆疊記憶體的指標或引用,因為該記憶體單元在函式體結束時被自動釋放。

2.要搞清楚返回的究竟是物件的值、物件的指標還是物件的引用。

3.如果函式返回值是乙個物件,要考慮return語句的效率。return string(s1+s2);與string result(s1+s2);return result;不等價。前者提高了效率。

4、函式堆疊用途

1).在進入函式前儲存環境變數和返回位址;

2).在進入函式時儲存引數的拷貝;

3).在函式體內儲存區域性變數。

ARM引數傳遞規則

原文出處 作者celerychen2009 1.r0,r1,r2,r3,在呼叫函式時,用來存放前 4個函式引數和返回值,r4 r11,r14,在呼叫函式時必須儲存這些暫存器到堆疊當中。如果函式的引數多於 4個,則多餘引數存放在堆疊當中,即 sp,sp 4,sp 8,依次類推。2.函式內部通用的入棧出...

Mybatis傳遞引數規則

public user selectuser string name,string area 其中 代表第乙個引數,代表第二個引數,依次類推 或者public user selectuser param name string name,param area string area 引數為list型...

Mybatis引數傳遞規則

1.單值傳參 void deleteobject string name mybatis的原始碼中要求單值傳參,取值時通過下標的方式取值 取值的引數名可以隨意 2.多值傳參 void deleteobject string name,string mybatis高版本的原始碼中做了規定,自動將多值轉...