我不知道这是否可能,但这里的维基百科文章Compatibility of C and C++说如下:
在 C 中,没有参数的函数原型,例如
int foo();
,意味着参数是未指定的。因此,使用一个或多个参数调用这样的函数是合法的,例如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
或维基百科正在谈论完全不同的东西?