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