Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 函数“va_start”的隐式声明_C_Linux_Gcc_Variadic Functions - Fatal编程技术网

C 函数“va_start”的隐式声明

C 函数“va_start”的隐式声明,c,linux,gcc,variadic-functions,C,Linux,Gcc,Variadic Functions,编辑:我现在有include,它可以编译-但是varargs没有通过。你知道为什么吗 我有一段代码摘录: void msg(char* message, ...) { va_list args; va_start(args, message); char* m; if(asprintf(&m, message, args)==-1) m = message; va_end(args); print("<fg:green>INF

编辑:我现在有include,它可以编译-但是varargs没有通过。你知道为什么吗

我有一段代码摘录:

void msg(char* message, ...) {
    va_list args;
    va_start(args, message);
    char* m;
    if(asprintf(&m, message, args)==-1) m = message;
    va_end(args);

    print("<fg:green>INFO:</fg> ");
    println(m);
}
我必须包括一些特别的东西才能开始和结束吗

GCC Ubuntu/Linaro 4.6.3-1ubuntu5 4.6.3
Xubuntu 12.04

您必须包含并使用vasprintf而不是asprintf。

您必须包含并使用vasprintf而不是asprintf。

包含?是的,我添加了它-现在它可以编译了,但似乎不起作用。有什么想法吗?就好像瓦拉格一家消失了。如果你的老板说,这不管用,你会怎么想;要么修好它,要么被解雇,不给你任何其他信息?@KerrekSB你什么意思?我说了什么不起作用-瓦拉格一家没有通过。请取消你的否决票,这不公平。你解释你的期望,实际发生的事情,以及你做出的诊断,然后我们讨论。这是无法回答的,更不用说对社会毫无用处了。至少要说明asprintf是如何定义的。包括吗?是的,我添加了它-现在它可以编译了,但似乎不起作用。有什么想法吗?就好像瓦拉格一家消失了。如果你的老板说,这不管用,你会怎么想;要么修好它,要么被解雇,不给你任何其他信息?@KerrekSB你什么意思?我说了什么不起作用-瓦拉格一家没有通过。请取消你的否决票,这不公平。你解释你的期望,实际发生的事情,以及你做出的诊断,然后我们讨论。这是无法回答的,更不用说对社会毫无用处了。至少要说明asprintf是如何定义的。
gcc -g -Wall -std=gnu99 -O2 -Wfatal-errors   -c -o src/ui.o src/ui.c
src/ui.c: In function ‘msg’:
src/ui.c:7:5: warning: implicit declaration of function ‘va_start’ [-Wimplicit-function-declaration]
src/ui.c:12:5: warning: implicit declaration of function ‘va_end’ [-Wimplicit-function-declaration]