全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1029
推到 Plurk!
推到 Facebook!

函式中參數優先順序處理

尚未結案
syao
初階會員


發表:66
回覆:63
積分:25
註冊:2005-02-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-11-24 08:16:32 IP:59.104.xxx.xxx 未訂閱
#include      using std::cout; 
using std::cin; 
using std::endl;     int max(int, int); 
int max(int x, int y) 
{   
    
    cout << x << endl; //測試用
    cout << y << endl; //測試用
    if (x>y) return x; 
    else return y; 
}     int main() 
{ 
    int a, b, c, d, e, f; 
    cout<<"input six integers: " << endl; 
    cin>>a>>b>>c>>d>>e>>f; 
    
    cout<
照上面程式碼來看是先處理最裡面() 應該是 max(a,b);處理起
不過我用下面兩段做測試,是先由max(e,f);先處理
cout << x << endl; //測試用
cout << y << endl; //測試用        C 或 C   中是否有規定函式中先處理哪邊參數
例如 max(Lmax(a,b),Rmax(c,d));  //是先處理Rmax()還是Lmax??      cout<(max(max(a,b),max(c,d)),max(e,f))    是否處理函式中參數是以左邊參數先處理後再處理右邊的參數    謝謝        發表人 - syao 於 2005/11/24  08:20:15
        
fusung
中階會員


發表:26
回覆:169
積分:99
註冊:2003-11-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-11-24 10:17:13 IP:140.114.xxx.xxx 未訂閱
Hello, syao    
max(Lmax(a,b),Rmax(c,d)); //是先處理Rmax()還是Lmax()?? 
我看不出先處理Rmax()或Lmax()會對你的程式結果有何不同? 因為max(x,y),應該是要等到有兩個輸入引數才會運作,至於誰先來後到似乎不影響結果。 至於 < class="code"> max(max(max(a,b),max(c,d)),max(e,f)) 應該是另一個問題,就是拆解有多個()運算的原理,一層一層往外拆。 以上是我的觀察,提供給你參考。 <> <> >
------


The first step toward proving things for yourself is to understand how others have done it before!

jcjroc
高階會員


發表:21
回覆:279
積分:115
註冊:2002-09-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-11-25 08:41:40 IP:211.75.xxx.xxx 未訂閱
當然有,而且會根據不同的呼叫方式決定參數的傳遞順序. 不過大部分都是由右到左
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-11-26 20:03:44 IP:211.22.xxx.xxx 未訂閱
這要牽扯到參數是按何順序傳遞到堆疊後,之後被呼叫的函數再從堆疊中取出參數,看看下面這兩個C COMPILER的修飾子吧~ <>> <> >>. > <>> <> > >; > -----------------------
系統時間:2024-05-11 23:24:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!