Я снова работаю с C после долгого времени для проекта, и я пытаюсь разгадать вариативные функции. В принципе, я хочу иметь возможность передавать несколько строк в функцию.Конфликтующие типы в вариационной функции
#include<stdarg.h>
int main(int argc, const char * argv[])
{
test_function(2,"test","test2");
test_function(4,"test3","test4","test5","test6");
return 0;
}
void test_function(int args, ...)
{
va_list ap;
va_start(ap, args);
int i;
for(i=0;i<args;i++)
{
printf("Argument:%s\n",va_arg(ap, char*));
}
va_end(ap);
}
Я получаю ошибку вокруг test_function - конфликтные ситуации для «» test_function
Может кто-нибудь мне точку в моей ошибки?
Вы не прототип для 'test_function', компилятор неявно объявляет его как' int test_function() 'при обнаружении в' main() '. Затем он встречает 'void test_function (int, ...)'. Они не то же самое. – WhozCraig
Только что понял! Спасибо Whoz! – A23
Любая причина, по которой вы wronly используете 'va_arg (ap, int)' вместо 'va_arg (ap, char *)'? – glglgl