C語言可變參的作用真的是非常大,自從發表了可變參如何實現printf,fprintf,sprintf的文章以來,便有不少博友私信問我實現的機制,我也解釋了相關的知識點。今天,我們借著這個機會,再來舉一個例子,看看如何用可變參來實現數據累加返回,請看代碼:
#include運行結果:#include int add(int count,...) { va_list ap; int i, sum; va_start (ap, count); /* Initialize the argument list. */ sum = 0; //將傳參進來的所有整數進行累加 for (i = 0; i < count; i++) sum += va_arg (ap, int); /* Get the next argument value. */ va_end (ap); /* Clean up. */ //將累加的數值返回 return sum; } int main(void) { printf ("%d\n", add(3, 5, 5, 6)); printf ("%d\n", add(10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); return 0 ; }
我們看到,傳進來的參數經過相加後返回,printf輸出的結果即是該函數返回的結果。