gpt4 book ai didi

c - 如何在 C 中打印变量参数的值?

转载 作者:太空宇宙 更新时间:2023-11-04 03:06:59 25 4
gpt4 key购买 nike

我有一个函数

void func(int x, char *str, ...)
{
...
}

我按如下方式调用它:

func(1, "1", "2", "3");

如何打印函数中所有额外参数 (2, 3) 的值?

最佳答案

来自 STDARG 的手册页关于使用 va_arg 获取下一个参数:

If there is no next argument, or if type is not compatible with the type of the actual next argument (as promoted according to the default argument promotions), random errors will occur.

因此,除非您希望出现随机错误,否则您应该事先知道参数的数量。

即便如此,如果您想抛开谨慎,您可以尝试:

void func(int x,char *str, ...)
{
va_list al;
va_start(al,str);

while(x>0)
{
str=va_arg(al,char *);
--x;
}

while(str != NULL)
{
printf("%s ",str);
str=va_arg(al,char *);
}
va_end(al);
}

与,

func(1,"1","2","3");

我得到了输出,

2 3 U��WVS�O  

如果它满足你的目的,你可以从这个输出中挑选出所需数量的参数。

关于c - 如何在 C 中打印变量参数的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3819931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com