我不知道這是否是可能的,但在這裏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
或維基百科談論的東西完全不同?
謝謝!我想這是我正在尋找的。 –