[C筆記]彈性可變式函式
前言:這裡想做一個有彈性函式,彈性的意思是我想要在函式輸入參數的部分,不想限制使用者輸入固定的參數數量,例如 printf("%i%i%i%i%i%i%i%i%i",1,2,3,4,5,6,7,8,9),這個常用的輸出方法不並沒有限制使用者只能輸出幾個參數。
提醒:
#include <stdarg.h> 使用裡面的
類別 va_list //記錄使用者輸入的所有參數
方法 va_start(ap,args) //告訴程式從哪個參數之後才開始抓
方法 va_arg(ap,int) //拿回使用者的參數 並且必須告知使用者參數的類別方法va_end(ap) //結束參數串列
sample code:
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
void total(int args,char *x, ...)
{
va_list ap;
va_start(ap,x); //從x 參數之後才開始抓參數
int i;
for(i=0;i<args;i++)
{
printf("%i\n",va_arg(ap,int));
}
va_end(ap);
}
int main(int argc, char *argv[])
{
total(4,"after_char_*x",4,3,2,1);//不算"after_char_*x",只輸出4個參數
system("PAUSE"); return 0;
}
輸出結果
沒有留言:
張貼留言