-2

プロジェクトのために久しぶりに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」のタイプが競合しています

誰かが私のエラーを指摘できますか?

4

4 に答える 4

8

の宣言をtest_functionしてから使用してください。stdio.hを使用しているため、同様に含める必要がありますprintf

#include <stdarg.h>
#include <stdio.h>

void test_function(int args, ...);

int main(int argc, char * argv[])
{
于 2013-10-14T08:29:18.317 に答える
0

関数のプロトタイプを配置するか、 の前に定義してくださいmain()

于 2013-10-14T08:31:22.547 に答える