1. 程式人生 > >c中可變可變引數

c中可變可變引數

C++支援引數有預設引數, 引數佔位符,可變引數:

#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>  // 必須要這個標頭檔案,獲取引數的函式在這個標頭檔案中

//C++中函式可變引數
//API都會提示使用者傳引數型別
void func_param(int a, ...){
    //獲取可變引數
    //定義可變引數指標
    va_list args_p;
    //首先指定可變引數開始位置,通過開始位置,使用指標,一路往下指,一個一個的取出來
    va_start(args_p, a);
    //一個個獲取(按照順序讀取)
    //第一個引數int型別
    int arg_int = va_arg(args_p, int);
    printf("第一個引數: %d\n", arg_int);
    
    //第二個引數char型別
    char arg_char = va_arg(args_p, char);


    printf("第二個引數: %c\n", arg_char);
    
    //第三個引數double型別
    double arg_float = va_arg(args_p, double);

    printf("第三個引數: %f\n", arg_float);
    
    //結束
    va_end(args_p);

}

****************************************************

void main(){
    func_param(3, 40, 'A', 45.3);

    system("pause");
}