重複の可能性:
C++ プリプロセッサ __VA_ARGS__ 引数
の数 可変数の引数を受け入れる関数に渡される引数の数をカウントする方法は?
可変パラメーター関数を学習するために、デモを作成します。
#include <stdlib.h>
#include <stdarg.h>
#include <stdio.h>
int foo(int n, int m, ...);
int
main (int argc, char *argv[])
{
int n = 10;
int m = 15;
int p = 20;
//foo (n, m);
foo(n, m, 20);
return EXIT_SUCCESS;
}
int foo (int n, int m, ...)
{
va_list ap;
int p;
char *str;
va_start (ap, m);
p = va_arg (ap, int);
n = m + p;
printf ("%d.\n", n);
va_end (ap);
return 0;
}
パラメータが 2 つしかない場合の関数の処理方法を知りたいです。(このデモでは、 と のみの場合n
、m
を実行した後foo
、結果を取得したい: n = n+m
。)