C語言中函式呼叫問題

時間 2022-09-17 15:40:03

1樓:潭嘉納弓綺

如果一個函式要使用引數,它就必須定義接受引數值的變數。

形式引數與實際引數

函式定義時填入的引數我們稱之為形式引數,簡稱形參,它們同函式內部的區域性變數作用相同。形參的定義是在函式名之後和函式開始的花括號之前。

呼叫時填入的引數,我們稱之為實際引數,簡稱實參。

必須確認所定義的形參與呼叫函式的實際引數型別一致,同時還要保證在呼叫時形參與實參的個數出現的次序也要一一對應。如果不一致,將產生意料不到的結果。與許多其它高階語言不同,(是健壯的,它總要做一些甚至你不希望的事情,幾乎沒有執行時錯誤檢查,完

全沒有範圍檢測。作為程式設計師,必須小心行事以保證不發生錯誤,安全執行。

賦值呼叫與引用呼叫

一般說來,有兩種方法可以把引數傳遞給函式。第一種叫做「賦值呼叫」(call

byvalue),這種方法是把引數的值複製到函式的形式引數中。這樣,函式中的形式引數的任何變化不會影響到呼叫時所使用的變數。

把引數傳遞給函式的第二種方法是「引用呼叫」(call

byreference)。這種方法是把引數的地址複製給形式引數,在函式中,這個地址用來訪問呼叫中所使用的實際引數。這意味著,形式引數的變化會影響呼叫時所使用的那個變數

2樓:逍月神話

你說的這種情況是函式的間接遞迴呼叫,這種呼叫需要定義兩個函式來執行,比如你舉得這個例子

void f1()

void f2()

其中虛線代表函式中的一些**

種種情況有一個問題,就是會無止盡呼叫,這樣函式就不會結束,所以必須在函式內部加上限制語句,常用的手段是加if語句來限制,如果滿足if語句後面的條件,就停止呼叫,我也是才學這個不久,希望能幫助你

3樓:匿名使用者

void f1(void); 這叫宣告

void f1(void) {} 這叫定義原始檔中函式只要宣告就可以呼叫,但是連線時候必須有且只有一個定義(除了行內函數,重複的定義會被忽略)。

void f1();

void f2()

void f1()

基本概念還是得搞清楚的...

----

至少請把別人說的話看完... 我那不就是f2呼叫f1,f1也呼叫f2麼...

4樓:匿名使用者

重複定義編譯時通不過的,怎麼會是忽略。。。

c語言中的函式呼叫

include int fun1 int x,int y,int z int fun2 int x,int y,int z int main void int fun1 int x,int y,int z int fun2 int x,int y,int z 你要使用,你寫的函式求出的值,那就要有個...

c語言中,函式返回值怎麼用,c語言中呼叫函式如何返回多個值?

斑駁丶4129仉 一般用0表示函式執行正確,正常返回 用負數表示函式執行出錯,每個值可以提前定義,根據出錯的值進行出錯處理。誠心為您解答每一個問題!如您滿意請採納最佳!如有疑問請繼續追問!您的好評是我們前進的動力,相互幫助,一起進步! return後接一個值。在呼叫這個函式的函式裡面,呼叫它的時候希...

c語言中怎麼呼叫windowsapi函式

千鋒教育 c 呼叫windows api方法非常方便,只要在檔案的開頭包含了相應的標頭檔案就可以直接呼叫了.下面給一個簡單的例子 include stdafx.h 這是vc自動新增的檔案,沒有什麼用途 include 包含messagebox函式宣告的標頭檔案int main int argc,ch...