これは何を意味するのでしょうか?
void message(int x, int y, ...)
…とは何なのかわかりません。誰か説明できますか?
これは何を意味するのでしょうか?
void message(int x, int y, ...)
…とは何なのかわかりません。誰か説明できますか?
...
va_arg、va_end、va_startを介してアクセスできる引数の変数リストを示します。
パラメータの不特定/可変数。このような関数を処理するには、va_listタイプと、va_start、va_arg、およびva_end関数を使用する必要があります。
ここからの例:
#include <stdlib.h>
#include <stdarg.h>
#include <stdio.h>
int maxof(int, ...) ;
void f(void);
main(){
f();
exit(EXIT SUCCESS);
}
int maxof(int n args, ...){
register int i;
int max, a;
va_list ap;
va_start(ap, n args);
max = va_arg(ap, int);
for(i = 2; i <= n_args; i++) {
if((a = va_arg(ap, int)) > max)
max = a;
}
va_end(ap);
return max;
}
void f(void) {
int i = 5;
int j[256];
j[42] = 24;
printf("%d\n",maxof(3, i, j[42], 0));
}
あなたはここでより多くの詳細を見つけることができます
int型の少なくとも2つの引数を取り、次に「...」で示されるいくつかのオプションの引数を取る関数メッセージをどこかに定義しました。(printfは、オプションの引数を取る別の関数です)。
オプションの引数には、 va_*関数を使用してアクセスできます。
...は、配列または引数のシーケンスとして渡される最後の引数を表します。
これは、可変引数の仮パラメーターです。構文上の観点から、可変数のパラメーター(xとyの少なくとも2つ、さらにはそれ以上)を渡すことができます。