函式宣告的時候,引數可以沒有識別符號:
void f(int x, int = 0, float = 1.1);//函式f宣告
其實,在c++中,函式定義的時候,也不一定需要識別符號:
void f(int x, int , float flt)//函式f的定義
沒有引數名,有一定的特殊之處,那就是中間的這個引數值是不能再函式體中引用的,但呼叫的時候還必須提供乙個展位符。
因此f的呼叫方式,可以是f(1)或者f(1,2,3.0).
第一種呼叫利用了預設引數的性質。第二種呼叫2必須給,當做佔位符。
那麼展位符的作用是什麼呢?
目的就在於:以後可以修改函式的定義而不需要修改所有函式的呼叫。
例如:如果開始使用乙個函式引數,後來發現這個函式引數沒有用處,可以將它直接去掉而不會產生錯誤警告,而且不需要改動那些呼叫該函式以前版本的程式**。
體驗:int example(int x, int , int z)
return x + z;
}//定義
int sum = example(1,2,3);
當然函式定義中有乙個名字y,int example(int x, int y, int z),而不使用y也可以達到同樣的效果,但這樣因為
函式體中沒有使用它,多數編譯器都會給出乙個警告,並認為犯了乙個邏輯錯誤。
用這種沒有名字的引數,我們可以防止警告,並可以展現我們的意圖。
因此下次修改函式定義的時候,如果乙個引數不想用了,可以直接刪除名字就可以了,而不用再重新寫個函式宣告。
C C 引數 預設引數 佔位符引數
不多說了,直接看 在c c 中表示空的引數列表 void test void 在c中表示不確定的引數數目,c 中表示空的引數列表 void test1 在c中編譯失敗,必須至少有乙個顯示引數 在c 中表示可變的引數數目 void test2 c 預設引數,c不支援 預設引數同函式過載一樣,給程式設計...
Mybatis的引數佔位符
mybatis支援引數佔位符 不過和jdbc的不同,jdbc是?而mybatis對於字元引數和非 字元引數提供了兩種不同的引數佔位符,非字元使用 而字元型別的引數則要使用 當使用模糊查詢的時候,如果我們要使用引數佔位符,那麼必須要使用 的形式,因為模糊查詢的時候,我們的引數是字元型別的 而 引數佔位...
C 預設引數和佔位符
通常情況下,函式在呼叫時,形參從實參那裡取得值。對於多次呼叫同一函式的同一 實參時,c 給出了更簡單的處理辦法。給形參以預設值,這樣就不用從實參那裡取值了。define crt secure no warnings include using namespace std c 中 允許給乙個形參 預設...