繁体   English   中英

如何在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM