сразу и не понял. С перемеными параметрами работают так:
void a(int j, ...)
{
int* pj = &j;
int n = *(pj+1);
int m = *(pj+2);
printf( "%ld, %ld", n, m );
}
void main( )
{
a( 4,7,4);
}
Но тебе не извесно, сколько и что тебе передают.
Я бы на твоем месте пропарсил входную строку, и узнал, что передали. А дальше, как в приведеном тексте.
Мне нужно из одной финкции с переменным числом параметров вызвать вызвать другую и передать ей те-же параметры.
Например
void MyClass::my_fun(char *format, ...)
{
//вызов одной из стандартных функций
//c переменным числом параметров
fprintf(file, format, /*тут как?*/);
}
Кто не помнит напомню, что с такими функциями работают при помощи va_start, va_arg, va_end
Была у меня идея:
va_list list;
va_start(list, format);
fprintf(file, format, list);
Ясно дело из нее ничего не вышло, list восприняля как один конкретный указатель.
Кто-нибудь что-нибудь умное может сказать?
posmotri f-ii fprintf() i vfprintf() , esli ne oshibajus, i togda vse poluchitsya19.11.01 13:58 Автор: kabanchik Статус: Незарегистрированный пользователь
сразу и не понял. С перемеными параметрами работают так:
void a(int j, ...)
{
int* pj = &j;
int n = *(pj+1);
int m = *(pj+2);
printf( "%ld, %ld", n, m );
}
void main( )
{
a( 4,7,4);
}
Но тебе не извесно, сколько и что тебе передают.
Я бы на твоем месте пропарсил входную строку, и узнал, что передали. А дальше, как в приведеном тексте.