可變參數函數

在計算機程序設計 ， 一個可變參數函數是指一個函數擁有不定引數 ， 即是它接受一個可變數目的參數 。 不同的程式語言對可變參數函數的支持有很大差異 。 一般而言 ， 在設計函數時會遇到許多數學和邏輯操作 ， 是需要一些可變功能 。 例如 ， 計算數字串的總和 、 字符串的聯接或其他操作過程 ， 都可以存在任意數量的參數 。 另一種許多語言都實現爲可變參數函數的是格式輸出函數 ， 在C語言的printf函數和Common Lisp的format函數就是例子 。 這些函數都需要一個參數 ， 指定格式的輸出 ， 再讀取可變參數的值進行格式化 。 另外 ， 可變參數函數在某些語言存在安全問題 。 例如C語言在沒有長度檢查和類型檢查 ， 在傳入過少的參數或不符的類型時可能會出現溢位的情況 ， 更可能會被利用爲攻擊目標 。 所以 ， 在設計函數時可以先考慮其他替補方案 ， 例如以類型安全的方式 — — 重載 。