某些情況下希望函數的參數個數可以根據需要確定。典型的例子有大家熟悉的函數printf()、scanf()等。
那麼它們是怎樣實現的呢?
C編譯器通常提供了一系列處理這種情況的宏,以屏蔽不同的硬件平台造成的差異,增加程序的可移植性。這些宏包括va_start、va_arg和va_end等。
下面是通過上面的函數隨便寫的例子:
#include"cstdarg" #include"iostream" using namespace std; //c參數類型,參數個數不確定。 //自定義方法 int Sum(int Num,...) { int S = 0 ,T; va_list ap; va_start(ap,Num); for(int i=0;i