C語言中 可變參數使用

//修改網友的小例子
#include <stdio.h>
#include <string.h>
#include <stdarg.h>

/*函數原型聲明,至少需要一個確定的參數,注意括號內的省略號*/
int demo( char *, ... );
void main( void )
{
    demo("DEMO", "This", "is", "a", "demo!", "");
}

int demo( char *msg, ... )
{
    /*定義保存函數參數的結構*/
    va_list argp;
    int argno = 0;
    char *para;
    /*argp指向傳入的第一個可選參數,msg是最後一個確定的參數*/
    va_start(argp, msg);
    printf("msg : %s \n",msg);
    while (1)
    {   
        para = va_arg(argp, char*);
        if ( strcmp(para, "") == 0 )
            break;
        printf("Parameter #%d is: %s\n", argno, para);
        argno++;
    }   
    va_end(argp);
    /*將argp置爲NULL*/
    return 0;
}


發佈了58 篇原創文章 · 獲贊 8 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章