![](/img/trans.png)
[英]How do I write a recursive function to print a string in reverse in C?
[英]How do I print function parameters in C?
我知道这个问题已经被问过很多次了,但是很抱歉,我找不到答案。 以下是带有参数的函数(有多少个未知参数)。 如何获取所有参数,然后打印它们?
int func(int a, int b, ...) {
// print the parameters
}
简短的回答是“您不这样做”。 C没有提供任何机制来知道参数何时结束。
如果要使用varargs,则需要给自己提供一种机制,该机制可以告诉您有多少个参数,每个参数有多大。 以最著名的示例为例,printf()要求其第一个参数为格式字符串,该字符串告诉它有关可变参数及其大小的信息。
如果您知道所有参数都将具有相同的大小(例如,整数),则可以设计例程,以便第一个参数是参数的数量,例如:
void
my_func (int n_args, ...)
{
va_list ap;
int i;
va_start(ap, n_args);
for (i = 0 ; i < n_args ; i++) {
process(va_arg(ap, int));
}
va_end(ap);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.