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

  • Droid Life

    Droid Life

    17 Kasım 2009
  • Leigh Momii

    Leigh Momii

    10 Mayıs 2006
  • videoisunrelated

    videoisunrel

    5 Mart 2009