可変パラメータリストのva_listのC言語

1. va_listの基本原則と使用方法:

する#include <stdio.hに> 
する#include <STDARG.H>
 ボイド FUNC(int型 I、チャー * CH、...){     // フォーマット
    va_listのAP; 
    va_startマクロ(AP、CH);               // 特定のパラメータを指し、から開始
    チャー * STR、
    STR = CH;
     DO { 
        のprintf(" %のS " 、STR); 
        STR =のva_arg(APは、CHARは *);      // 、柔軟性のない型char *型のパラメータを指定する必要が 
    } ながら(STR)を、
} 
int型のmain()
{   
    FUNC(1" A "" B " 、NULL);
    リターン 0 ; 
}

2. va_listのとvsprintfのと一緒に使用:

書式#include <stdio.hに> 
する#include <STDARG.H>
 無効 FUNC(int型 I、char型の {*のFMT、...)      // 形式の
    va_listのAPを、
    va_startマクロ(AP、FMT)。
    チャー STR [ 20 ]。
    vsprintfの(STR、FMT、AP)。
    va_end(AP)。
    printf(" %sにする\ n " 、STR)。
} 
int型のmain()
{   
    チャー STR1は、[] = " 0009 " ;
    チャー STR2 [] = " STR2 " int型 D = 1000年
    FUNC( 1" %S%S%D " 、STR1、STR2、D)。
    リターン 0 ; 
}

これはまさにのprintfの原理です。

拡張:initializer_list近代C ++。

 

おすすめ

転載: www.cnblogs.com/abnk/p/11224090.html