一、簡介:
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...