Re: [問題] 預設引數的疑問

看板C_and_CPP (C/C++)作者 (嘎嘎嘎嘎嘎)時間15年前 (2010/07/30 11:08), 編輯推噓3(306)
留言9則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《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

07/30 11:29, , 1F
小弟一直以為有宣告是寫在宣告, 原來是撞到錯的case.Orz
07/30 11:29, 1F

07/30 11:59, , 2F
誰說是錯的 ? 分散在不同編譯單元, 可以提供不一樣的
07/30 11:59, 2F

07/30 11:59, , 3F
預設引數, 差別在於你呼叫的時候看到的是哪一個宣告
07/30 11:59, 3F

07/30 12:00, , 4F

07/30 13:38, , 5F
感謝這麼用心的解答^^
07/30 13:38, 5F

07/30 14:25, , 6F
原來是這樣用的, 謝謝l大:) 所以錯的是不可以同時出現兩
07/30 14:25, 6F

07/30 14:25, , 7F
個地方都提供引數在某個編譯單元囉@_@"
07/30 14:25, 7F

07/30 14:25, , 8F
^ 預設
07/30 14:25, 8F

07/31 05:40, , 9F
呼叫的時候看到的是哪一個宣告~~~~原來如此
07/31 05:40, 9F
文章代碼(AID): #1CKa8jmS (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1CKa8jmS (C_and_CPP)