如何计算C语言中可变参数的数量()

C支持可变数量的参数。但是没有提供语言来找出传递的参数总数。
用户必须通过以下方式之一来处理此问题:
1)通过传递第一个参数作为参数计数。
2)将最后一个参数传递为NULL(或0)。
3)使用类似printf(或scanf)的机制, 其中第一个参数对其余参数具有占位符。
以下是使用第一个参数的示例arg_count保留其他参数的数量。

#include < stdarg.h> #include < stdio.h> // this function returns minimum of integer numbers passed.First // argument is count of numbers. int min( int arg_count, ...) { int i; int min, a; // va_list is a type to hold information about variable arguments va_list ap; // va_start must be called before accessing variable argument list va_start (ap, arg_count); // Now arguments can be accessed one by one using va_arg macro // Initialize min as first argument in list min = va_arg (ap, int ); // traverse rest of the arguments to find out minimum for (i = 2; i < = arg_count; i++) { if ((a = va_arg (ap, int )) < min) min = a; }//va_end should be executed before the function returns whenever // va_start has been previously used in that function va_end (ap); return min; }int main() { int count = 5; // Find minimum of 5 numbers: (12, 67, 6, 7, 100) printf ( "Minimum value is %d" , min(count, 12, 67, 6, 7, 100)); getchar (); return 0; }

可变参数的数量的输出如下:
最小值为6
【如何计算C语言中可变参数的数量()】如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。

    推荐阅读