저는 오랫동안 프로젝트를 위해 C와 다시 작업 중이며 가변적 인 함수에 대한 내 머리를 얻으려고합니다. 기본적으로 함수에 여러 문자열을 전달할 수 있기를 원합니다.variadic 함수의 충돌 유형
#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'에 대한 프로토 타입 인 경우, 컴파일러는'main()'에서 발견되면 암시 적으로'int test_function()'으로 선언합니다. 그런 다음'void test_function (int, ...)'를 만나게됩니다. 그들은 동일하지 않습니다. – WhozCraig
그냥 알아 냈어! 고마워요 Whoz! – A23
'va_arg (ap, char *)'대신'va_arg (ap, int)'를 쓸모없는 이유는 무엇입니까? – glglgl