C語言中函數調用是什么意思,調用有什么作用
如果在設計c語言程序中,反復要用到一個組合計算的程序段,比如:
void main()
{
int a,b,c,x,y,z,j,k,l;
c=a+b; c-=(a-b)/2; //計算c=(a+b)-(a-b)/2
z=x+y; z-=(x-y)/2; //計算z=(x+y)-(x-y)/2
l=j+k; l-=(j-k)/2; //計算l=(j+k)-(j-k)/2
}
由于它們的計算公式相同,就采用一個函數來替代相似的語句:
int fun(int a,int b) { int c; c=a+b; c-=(a-b)/2; return c; } //按照公式計算并返回結果
這樣程序就變成了:
int fun(int a,int b) { int c; c=a+b; c-=(a-b)/2; return c; }
void main()
{
int a,b,c,x,y,z,j,k,l;
c=fun(a,b);
z=fun(x,y);
l=fun(j,k);
}
*這樣的效果是:重復利用了函數的代碼,節省程序的代碼量(尤其是計算公式很復雜的情況更突出),程序簡潔易讀,便于統一修改計算公式和方法。
*還有一個優點就是:你調用函數時,無須知道算法的細節,按照函數調用規則就可以使用了,比如,標準c提供的函數double sin(double x),你只要知道這是個計算正弦函數值的函數即可,拿來可用而不必去看具體標準函數庫是怎樣計算的。
*你的函數如果寫得正確、經典的話,完全可以封裝成標準函數拿給其他人使用,甚至可以不提供源代碼就可以。
*沒有返回值的函數又可以叫子程序
1、函數的調用語句fun((exp1,exp2),(exp3,exp4,exp5))中含有的實參
5個,這里沒有什么疑問的!
從形式上看很看是兩個的,因為有二個為一組做為一個對象,有三個為一組做為一個對象,共有兩個.所以應該說是兩個,而從我的感覺當中這樣是不對的,因為在JS中不存在(exp1,exp2)這樣的定義方法,他不是{1,2}而是(1,2),而且()的做用除了VB中的索引外,在JS中只是改變了運算符的優先順序,而這里改變的顯然是,運算符的優選順序,而,運算本身的優選順序是自左向右,所以這里除了改變順序達到一個特殊目的,但如果不考慮這個特殊目的,那么,加了括號跟不加是沒有區別的.所以這里的參數是五個而不是兩個!
當然你完全可以做一個驗證:定義一個有五個形參的函數,然后加括號傳值,看一下是否成功!