SORU
15 EKİM 2008, ÇARŞAMBA


Tartışmalar geçen değişken sayısı

Demek ben bir C fonksiyonu olan alır bir değişken sayıda bağımsız değişken: Nasıl olabilir diyorum başka bir işlevi bekliyor değişken sayıda bağımsız değişken içinden, geçen tüm argümanları var içine ilk işlevi?

Örnek:

void format_string(char *fmt, ...);

void debug_print(int dbg_lvl, char *fmt, ...) {
    format_string(fmt, /* how do I pass all the arguments from '...'? */);
    fprintf(stdout, fmt);
 }

CEVAP
15 EKİM 2008, ÇARŞAMBA


Üç nokta aktarmak için, bir va_list onları dönüştürmek ve ikinci işlevi olan va_list kullanmak zorunda. Özellikle;

void format_string(char *fmt,va_list argptr, char *formatted_string);


void debug_print(int dbg_lvl, char *fmt, ...) 
{    
 char formatted_string[MAX_FMT_SIZE];

 va_list argptr;
 va_start(argptr,fmt);
 format_string(fmt, argptr, formatted_string);
 va_end(argptr);
 fprintf(stdout, "%s",formatted_string);
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AginoEvolutionHD

    AginoEvoluti

    27 AĞUSTOS 2011
  • Migs351

    Migs351

    3 HAZİRAN 2007
  • Semantic Mastery

    Semantic Mas

    30 EKİM 2013