c語言函式任意個數引數的實現

2021-10-20 20:06:31 字數 709 閱讀 1200

一、簡介:

c語言在寫函式時,如果不確定要輸入多少引數,標準庫提供了一種方式輸入任意長度引數。

二、使用方法

1、新增標頭檔案:#include

2、定義:引數上面用「…」代表任意個引數,省略號之前的那個引數是 int,代表了要傳遞的可變引數的總數

3、訪問:在函式定義中建立乙個 va_list 型別變數

使用 int 引數和 va_start 巨集來初始化 va_list 變數為乙個引數列表

使用 va_arg 巨集和 va_list 變數來訪問引數列表中的每個項

使用巨集 va_end 來清理賦予 va_list 變數的記憶體

以下面求和函式為例:

要求和輸入的數量不確定,輸出求和的結果

三、示例

1、編寫介面和新增標頭檔案

#include

#include

intsum

(int num,..

.)

2、新增訪問變數引數,測試

#include

#include

intmysum

(int num,..

.)//清理引數記憶體

va_end

(valist)

;return sum;

}int

main()

Python實現接受任意個數引數的函式

這個功能倒也不是我多麼急需的功能,只是恰好看到了,覺得或許以後會用的到。功能就是實現函式能夠接受不同數目的引數。其實,在c語言中這個功能是熟悉的,雖說實現的形式不太一樣。c語言中的main函式是可以實現類似的功能的,可以通過這種方式實現乙個支援命令列引數的程式。先寫一段python實現相應功能的示範...

Python實現接受任意個數引數的函式方法

這個功能倒也不是我多麼急需的功能,只是恰好看到了,覺nyzfvxeojb得或許以後會用的到。功能就是實現函式能夠接受不同數目的引數。其實,在c語言中這個功能是熟悉的,雖說實現的形式不太一樣。c語言中的main函式是可以實現類似的功能的,可以通過這種方式實現乙個支援命令列引數的程式。先寫一段pytho...

關於任意個數引數的實現方式

對於乙個給定的函式而言,引數的個數個型別都是確定的,如果在某些情況下想要是實現引數個數任意應該怎麼處理呢?分為兩種情況 引數型別一致 引數型別不定 對於引數型別一致的情況,可以採用initializer list的方式來實現,示例 如下 void print std initializer list...