Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

nieokreślona ilość parametrów

Ostatnio zmodyfikowano 2009-06-10 20:43
Autor Wiadomość
pekfos
Temat założony przez niniejszego użytkownika
nieokreślona ilość parametrów
» 2009-06-10 18:22:59
jak są zbudowane funkcje takie jak printf() że można im
podać dużo dodatkowych parametrów?
printf( "%d:%d:%d", a, b, c );
P-7563
WunM
» 2009-06-10 19:34:14
P-7564
pekfos
Temat założony przez niniejszego użytkownika
» 2009-06-10 20:09:06
to jest w C napisane. są jakieś odpowiedniki stdarg.h w C++?
P-7565
DejaVu
» 2009-06-10 20:12:51
To chyba jedyny sposób.
P-7566
pekfos
Temat założony przez niniejszego użytkownika
» 2009-06-10 20:21:05
to tamten kod z linku z dodanym main()em
C/C++
int mnoz( int pierwszy,...)
{
    va_list arg;
    int iloczyn = 1, t;
    va_start( arg, pierwszy );
    for( t = pierwszy; t; t = va_arg( arg, int ) ) {
        iloczyn *= t;
    }
    va_end( arg );
    return iloczyn;
}


int main() {
    cout << mnoz( 2, 2, 2 );
    getch();
    return 0;
}
nie działa: wyświetla na ekranie "0" a nie "8"
P-7567
pekfos
Temat założony przez niniejszego użytkownika
» 2009-06-12 13:57:11
działa. zamykam temat, chyba został już wyczerpany
P-7632
manfred
» 2009-06-10 20:19:03
cstdarg, jak każdy odpowiednik nagłówka z C ma nazwę z c na początku i bez rozszerzenia...
P-18962
manfred
» 2009-06-10 20:43:24
a zrób tak:
C/C++
int mnoz( int count,...) {
    va_list arg;
    int retval = 1;
    va_start( arg, count );
    for( int i = 0; i < count; i++ )
         retval *= va_arg( arg, int );
   
    return retval;
}
//wywołanie:
mnoz( 6 /*liczba argumentów - 1*/, 9, 3, 5, 4, 2, 7 );
P-18963
« 1 »
  Strona 1 z 1