それが可能かどうかはわかりませんが、ここのウィキペディアの記事Compatibility of C and C++には次のように書かれています。
C では、引数のない関数プロトタイプ (例:
int foo();
) は、パラメーターが指定されていないことを意味します。したがって、1 つ以上の引数を指定してこのような関数を呼び出すことは正当foo(42, "hello world")
です。対照的に、C++ では、引数のない関数プロトタイプは、関数が引数をとらないことを意味し、引数を指定してそのような関数を呼び出すことは形式が正しくありません。
C では、引数を取らない関数を宣言する正しい方法は、 のように を使用すること
void
ですint foo(void);
。
次のコードを作成してテストし、渡された変数をキャッチしました (これは正しく機能しません)。
#include<stdio.h>
#include<stdarg.h>
void foo();
int main()
{
int i = 3;
foo(i);
return 0;
}
void foo()
{
// va_list args;
// va_start(args);
//
// int x = va_arg (args, int);
// printf("%d", x);
// va_end(args);
}
渡されたものをキャッチすることは可能ですか、i
それともウィキペディアはまったく別のことについて話しているのでしょうか?