看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《jehovah (Lucius)》之銘言: : 請教個很呆的問題 : 例如宣告個function prototype : 預設引數 : 1. int example(int=0); : 2. int example(int x=0); : 兩者在記憶體配置上有什麼不同嗎? 謝謝 沒有不同 在宣告寫名稱只是寫爽的 類是註解的功用 編譯器會自動忽略宣告時的引數名稱 例如這樣編譯也會過 void example(int aaa=0, int bbb=0); //宣告時名稱亂寫 void example(int x, int y){ //實作 cout << x+y } 但是宣告和實作只有一個可以寫預設引數的值 例如這樣是正確的 void example(int x=0, int y=0); void example(int x, int y){ cout << x+y; } 這樣也正確 void example(int x, int y); void example(int x=0, int y=0){ cout << x+y; } 但是這樣就錯了!!!!! void example(int x=0, int y=0); void example(int x=0, int y=0){ cout << x+y; } 真是神奇 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.25.118.131
VictorTom:小弟一直以為有宣告是寫在宣告, 原來是撞到錯的case.Orz 07/30 11:29
loveme00835:誰說是錯的 ? 分散在不同編譯單元, 可以提供不一樣的 07/30 11:59
loveme00835:預設引數, 差別在於你呼叫的時候看到的是哪一個宣告 07/30 11:59
loveme00835:http://paste.plurk.com/show/285350/ 07/30 12:00
jehovah:感謝這麼用心的解答^^ 07/30 13:38
VictorTom:原來是這樣用的, 謝謝l大:) 所以錯的是不可以同時出現兩 07/30 14:25
VictorTom:個地方都提供引數在某個編譯單元囉@_@" 07/30 14:25
VictorTom: ^ 預設 07/30 14:25
xxxx9659:呼叫的時候看到的是哪一個宣告~~~~原來如此 07/31 05:40