C語言中函式引數的個數感想

2021-08-15 13:44:36 字數 555 閱讀 1766

今天編寫乙個函式,需要傳的引數比較多,算起來也有11個,突發奇想,乙個函式能允許接收幾個引數,還是沒有限制,但是這樣會影響函式的效率嗎?帶著所惑,在網上找了一些資料,最後對函式加了結構體進行改造。如有一些建議或還未考慮到的地方,還請相互指教。

乙個函式的引數的數目沒有明確的限制,但是引數過多(例如超過8個)顯然是一種不可取的程式設計風格。引數的數目直接影響呼叫函式的速度,引數越多,呼叫函式就越慢。另一方面,引數的數目少,程式就顯得精練、簡潔,這有助於檢查和發現程式中的錯誤。因此,通常應該盡可能減少引數的數目,如果乙個函式的引數超過4個,你就應該考慮一下函式是否編寫得當。

如果乙個函式不得不使用很多引數,你可以定義乙個結構來容納這些引數,這是一種非常好的解決方法。

例項:原函式:int insert_history(int h,int l,int m,int i,int total,...);

優化後:

typedef structrisk;

int insert_history(risk level,long int total,....);

C語言中不定引數個數的函式

c 中有函式過載這種方法,以供我們呼叫時要可以不確定實參的個數,其實c語言也可以,而且更高明!我們在stdio.h中可以看到printf 函式的原型 int printf char format,事實上,我們如果要寫這樣的函式也可以類似的寫,那麼在定義函式時用上這個符號 它叫佔位符,喊它 三個點 也...

C語言中實現引數個數可變的函式

以前一直不知道原來c語言也有引數個數可變的函式。1 採用ansi標準形式時,引數個數可變的函式的原型宣告是 type funcname type para1,type para2,這種形式至少需要乙個普通的形式引數,後面的省略號不表示省略,而是函式原型的一部分。type是函式返回值和形式引數的型別。...

C語言中的可變引數函式

先來個例子,後面再說明 上面的程式我在vc6.0編譯通過 現在說一下可變引數的用法 第一步 函式宣告 functionname char format,第二步 定義va list 變數 ap 第三步 使ap和引數列表關聯起來va start ap,format 第四步 你可以按照引數列表即forma...