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

  • LimeFire

    LimeFire

    2 ŞUBAT 2012
  • Virtual Riot

    Virtual Riot

    19 Mayıs 2011
  • YouplusmeVEVO

    YouplusmeVEV

    4 EYLÜL 2014